<!DOCTYPE html>
<html lang="en-US" dir="ltr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>概述 | 九问Blog</title>
    <meta name="description" content="欢迎访问九问Blog！分享一些Python全栈开发以及爬虫技术，希望对你有所帮助">
    <meta name="generator" content="VitePress v1.6.4">
    <link rel="preload stylesheet" href="/assets/style.DFMv0UyT.css" as="style">
    <link rel="preload stylesheet" href="/vp-icons.css" as="style">
    
    <script type="module" src="/assets/app.FY3_6mXQ.js"></script>
    <link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
    <link rel="modulepreload" href="/assets/chunks/theme.C5KTugK_.js">
    <link rel="modulepreload" href="/assets/chunks/framework.CKMM7nwK.js">
    <link rel="modulepreload" href="/assets/其他_八股_其他_网安_网络安全.md.COiOJXPx.lean.js">
    <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
    <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
  </head>
  <body>
    <div id="app"><!--[--><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-1168a8e4><a class="title" href="/" data-v-1168a8e4><!--[--><!--]--><!----><span data-v-1168a8e4>九问Blog</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/%E5%B7%A5%E5%85%B7/Git/%E5%90%8C%E6%97%B6%E6%8E%A8%E9%80%81Gitee%E5%92%8CGitHub.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>工具</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/Linux/Linux%E5%9F%BA%E7%A1%80%E5%85%A5%E9%97%A8.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>Linux</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/%E7%88%AC%E8%99%AB/%E5%AF%BC%E8%AE%BA.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>爬虫</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/%E6%B5%8B%E8%AF%95/faker%E6%95%B0%E6%8D%AE%E9%9A%8F%E6%9C%BA%E7%94%9F%E6%88%90.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>测试</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/Python/%E5%8E%9F%E7%90%86%E7%B1%BB/%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>Python</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/Python%E6%A1%86%E6%9E%B6/Django/%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>Python框架</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/Linux.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>其他</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/%E5%89%8D%E7%AB%AF/Vue3/axios.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>前端</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/LLM/LangChain/quick_start.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>LLM</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/docker/mysql.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>环境搭建</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/jiuwen567" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://gitee.com/jiuwen567" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><svg t="1724307958358" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4234" width="200" height="200"><path d="M512 0C230.4 0 0 230.4 0 512s230.4 512 512 512 512-230.4 512-512S793.6 0 512 0z m284.8 313.6c0 12.8-12.8 25.6-25.6 25.6H416c-41.6 0-76.8 35.2-76.8 76.8v243.2c0 12.8 12.8 25.6 25.6 25.6h240c41.6 0 76.8-35.2 76.8-76.8v-12.8c0-12.8-12.8-25.6-25.6-25.6H480c-12.8 0-25.6-12.8-25.6-25.6v-64c0-12.8 12.8-25.6 25.6-25.6h291.2c12.8 0 25.6 12.8 25.6 25.6v144c0 92.8-76.8 169.6-169.6 169.6H252.8c-12.8 0-25.6-12.8-25.6-25.6V412.8C227.2 310.4 310.4 224 416 224h355.2c12.8 0 25.6 12.8 25.6 25.6v64z" fill="#B32225" p-id="4235"></path></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-cf11d7a2><span class="vpi-more-horizontal icon" data-v-cf11d7a2></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><!----><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>主题</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/jiuwen567" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://gitee.com/jiuwen567" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><svg t="1724307958358" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4234" width="200" height="200"><path d="M512 0C230.4 0 0 230.4 0 512s230.4 512 512 512 512-230.4 512-512S793.6 0 512 0z m284.8 313.6c0 12.8-12.8 25.6-25.6 25.6H416c-41.6 0-76.8 35.2-76.8 76.8v243.2c0 12.8 12.8 25.6 25.6 25.6h240c41.6 0 76.8-35.2 76.8-76.8v-12.8c0-12.8-12.8-25.6-25.6-25.6H480c-12.8 0-25.6-12.8-25.6-25.6v-64c0-12.8 12.8-25.6 25.6-25.6h291.2c12.8 0 25.6 12.8 25.6 25.6v144c0 92.8-76.8 169.6-169.6 169.6H252.8c-12.8 0-25.6-12.8-25.6-25.6V412.8C227.2 310.4 310.4 224 416 224h355.2c12.8 0 25.6 12.8 25.6 25.6v64z" fill="#B32225" p-id="4235"></path></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>菜单</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-8a42e2b4><button data-v-8a42e2b4>回到顶部</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>面经</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E9%9D%A2%E7%BB%8F/%E5%A4%A7%E7%96%86.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>大疆</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E9%9D%A2%E7%BB%8F/%E5%B7%AE%E6%97%851%E5%8F%B7.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>差旅1号</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E9%9D%A2%E7%BB%8F/%E5%B9%BF%E5%B7%9E%E5%98%89%E4%B8%BA%E7%A7%91%E6%8A%80%E5%85%AC%E5%8F%B8-python.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>广州嘉为科技公司-python</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E9%9D%A2%E7%BB%8F/%E5%BE%97%E7%89%A9.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>得物</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E9%9D%A2%E7%BB%8F/%E6%8B%9B%E5%95%86%E9%93%B6%E8%A1%8C.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>招商银行</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E9%9D%A2%E7%BB%8F/%E7%99%BE%E5%BA%A6.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>百度</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible has-active" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>八股</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/Linux.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>Linux</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h3 class="text" data-v-b3fd67f8>前端</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%89%8D%E7%AB%AF/%E4%BA%8B%E4%BB%B6%E5%BE%AA%E7%8E%AF&amp;%E5%BC%82%E6%AD%A5.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>事件循环&异步</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>HTML</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%89%8D%E7%AB%AF/HTML/%E6%96%87%E6%A1%A3%E5%A3%B0%E6%98%8E.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>文档声明</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%89%8D%E7%AB%AF/HTML/%E6%9B%BF%E6%8D%A2%E5%85%83%E7%B4%A0.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>替换元素</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%89%8D%E7%AB%AF/HTML/%E8%AF%AD%E4%B9%89%E5%8C%96&amp;SEO&amp;%E5%BE%AE%E6%A0%BC%E5%BC%8F.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>语义化&SEO&微格式</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%89%8D%E7%AB%AF/HTML/%E9%A1%B5%E9%9D%A2%E5%8F%AF%E8%A7%81%E6%80%A7.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>页面可见性</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>CSS</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%89%8D%E7%AB%AF/CSS/%E5%8D%95%E4%BD%8D.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>单位</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%89%8D%E7%AB%AF/CSS/%E5%B1%85%E4%B8%AD%E7%9A%84%E6%96%B9%E5%BC%8F.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>居中的方式</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><section class="VPSidebarItem level-1 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h3 class="text" data-v-b3fd67f8>数据库</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E5%BA%93/log.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>log</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E5%BA%93/mysql%E7%9A%84%E6%89%A7%E8%A1%8C%E5%BC%95%E6%93%8E.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>mysql的执行引擎</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E5%BA%93/redis.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>redis</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E5%BA%93/sql%E8%AF%AD%E5%8F%A5%E7%9A%84%E6%89%A7%E8%A1%8C.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>sql语句的执行</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E5%BA%93/%E6%85%A2%E6%9F%A5%E8%AF%A2.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>慢查询</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E5%BA%93/%E7%B4%A2%E5%BC%95%E5%A4%B1%E6%95%88%E7%9A%84%E5%9C%BA%E6%99%AF.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>索引失效的场景</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>事务</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E5%BA%93/%E4%BA%8B%E5%8A%A1/%E4%BA%8B%E5%8A%A1%E7%9A%84%E5%9B%9B%E5%A4%A7%E7%89%B9%E6%80%A7.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>事务的四大特性</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E5%BA%93/%E4%BA%8B%E5%8A%A1/%E4%BA%8B%E5%8A%A1%E7%9A%84%E9%9A%94%E7%A6%BB%E7%BA%A7%E5%88%AB.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>事务的隔离级别</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>进阶</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E5%BA%93/%E8%BF%9B%E9%98%B6/%E7%AA%97%E5%8F%A3%E5%87%BD%E6%95%B0.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>窗口函数</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><section class="VPSidebarItem level-1 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h3 class="text" data-v-b3fd67f8>测开</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%B5%8B%E5%BC%80/bug.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>bug</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%B5%8B%E5%BC%80/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>性能测试</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%B5%8B%E5%BC%80/%E6%B5%8B%E8%AF%95%E7%9A%84%E6%B5%81%E7%A8%8B.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>测试的流程</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%B5%8B%E5%BC%80/%E6%B5%8B%E8%AF%95%E7%9A%84%E7%90%86%E8%A7%A3.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>测试的理解</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%B5%8B%E5%BC%80/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>软件测试</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%B5%8B%E5%BC%80/%E8%BD%AF%E4%BB%B6%E8%B4%A8%E9%87%8F.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>软件质量</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-1 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h3 class="text" data-v-b3fd67f8>数据结构</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E4%BA%8C%E5%88%86%E6%B3%95.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>二分法</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E4%BA%8C%E5%8F%89%E6%A0%91.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>二叉树</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E5%9B%9E%E6%BA%AF.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>回溯</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E6%9C%80%E5%A4%A7%E5%80%BC.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>滑动窗口最大值</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>数组</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E6%95%B0%E7%BB%84/%E8%9B%87%E5%BD%A2%E5%A1%AB%E6%95%B0.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>蛇形填数</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>背包</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E8%83%8C%E5%8C%85/01%E8%83%8C%E5%8C%85.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>01背包</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>链表</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E9%93%BE%E8%A1%A8/%E4%B8%A4%E4%B8%A4%E4%BA%A4%E6%8D%A2%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%8A%82%E7%82%B9.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>两两交换链表中的节点</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E9%93%BE%E8%A1%A8/%E5%8D%95%E9%93%BE%E8%A1%A8.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>单链表</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E9%93%BE%E8%A1%A8/%E5%8F%8D%E8%BD%AC%E9%93%BE%E8%A1%A8.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>反转链表</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><section class="VPSidebarItem level-1 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h3 class="text" data-v-b3fd67f8>计网</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/CDN.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>CDN</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/cookie&amp;session.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>cookie&session</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/DNS%E6%9F%A5%E8%AF%A2%E8%BF%87%E7%A8%8B.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>DNS查询过程</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/http%E5%B8%B8%E8%A7%81%E7%8A%B6%E6%80%81%E7%A0%81.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>http常见状态码</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/OSI%E6%A8%A1%E5%9E%8B.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>OSI模型</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/url%E5%88%B0%E9%A1%B5%E9%9D%A2%E5%B1%95%E7%A4%BA.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>url到页面展示</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/%E5%BC%BA%E7%BC%93%E5%AD%98%E5%92%8C%E5%8D%8F%E5%95%86%E7%BC%93%E5%AD%98.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>强缓存和协商缓存</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>传输层</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/%E4%BC%A0%E8%BE%93%E5%B1%82/TCP&amp;UDP.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>TCP&UDP</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>物理层</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/%E7%89%A9%E7%90%86%E5%B1%82/%E5%A5%88%E6%B0%8F%E5%87%86%E5%88%99&amp;%E9%A6%99%E5%86%9C%E5%85%AC%E5%BC%8F.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>奈氏准则&香农公式</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>应用层</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/%E5%BA%94%E7%94%A8%E5%B1%82/http&amp;https.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>http&https</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/%E5%BA%94%E7%94%A8%E5%B1%82/http.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>http</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E8%AE%A1%E7%BD%91/%E5%BA%94%E7%94%A8%E5%B1%82/http1.0%E5%90%84%E4%B8%AA%E7%89%88%E6%9C%AC.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>http1.0各个版本</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><section class="VPSidebarItem level-1 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h3 class="text" data-v-b3fd67f8>操作系统</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E5%AD%98%E5%82%A8%E7%AE%A1%E7%90%86.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>存储管理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8%E5%8F%8A%E8%99%9A%E6%8B%9F%E5%8C%96%E6%8A%80%E6%9C%AF%E6%A6%82%E8%BF%B0.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>操作系统安全及虚拟化技术概述</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%A6%82%E8%BF%B0%E5%8F%8A%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>操作系统概述及基本概念</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>文件系统</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E6%AD%BB%E9%94%81.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>死锁</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>输入输出</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E8%BF%9B%E7%A8%8B%E4%B8%8E%E7%BA%BF%E7%A8%8B.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>进程与线程</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E9%9D%A2%E8%AF%95%E5%85%AB%E8%82%A1.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>面试八股</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-1 collapsible has-active" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h3 class="text" data-v-b3fd67f8>其他</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>汇编</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%85%B6%E4%BB%96/%E6%B1%87%E7%BC%96/%E4%B8%B2%E6%8C%87%E4%BB%A4.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>串指令</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%85%B6%E4%BB%96/%E6%B1%87%E7%BC%96/%E5%89%8D%E7%BD%AE%E7%9F%A5%E8%AF%86.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>前置知识</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%85%B6%E4%BB%96/%E6%B1%87%E7%BC%96/%E5%AE%8F%E6%B1%87%E7%BC%96.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>宏汇编</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%85%B6%E4%BB%96/%E6%B1%87%E7%BC%96/%E5%AF%84%E5%AD%98%E5%99%A8.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>寄存器</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%85%B6%E4%BB%96/%E6%B1%87%E7%BC%96/%E5%AF%BB%E5%9D%80%E6%96%B9%E5%BC%8F.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>寻址方式</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%85%B6%E4%BB%96/%E6%B1%87%E7%BC%96/%E6%95%B0%E6%8D%AE%E4%BC%A0%E9%80%81%E6%8C%87%E4%BB%A4.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>数据传送指令</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%85%B6%E4%BB%96/%E6%B1%87%E7%BC%96/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E7%BB%BC%E5%90%88.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>程序设计综合</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%85%B6%E4%BB%96/%E6%B1%87%E7%BC%96/%E9%80%BB%E8%BE%91%E8%BF%90%E7%AE%97%E4%B8%8E%E7%A7%BB%E4%BD%8D%E6%8C%87%E4%BB%A4.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>逻辑运算与移位指令</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible has-active" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>网安</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%85%B6%E4%BB%96/%E7%BD%91%E5%AE%89/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>网络安全</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>项目</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><section class="VPSidebarItem level-1 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h3 class="text" data-v-b3fd67f8>项目部署</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E9%A1%B9%E7%9B%AE/%E9%A1%B9%E7%9B%AE%E9%83%A8%E7%BD%B2/web.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>web</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h4 class="text" data-v-b3fd67f8>vitepress</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b3fd67f8><span class="vpi-chevron-right caret-icon" data-v-b3fd67f8></span></div></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E9%A1%B9%E7%9B%AE/%E9%A1%B9%E7%9B%AE%E9%83%A8%E7%BD%B2/vitepress/GithubPages%E9%83%A8%E7%BD%B2.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>GithubPages部署</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E9%A1%B9%E7%9B%AE/%E9%A1%B9%E7%9B%AE%E9%83%A8%E7%BD%B2/vitepress/netlify%E9%83%A8%E7%BD%B2.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>netlify部署</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/%E5%85%B6%E4%BB%96/%E9%A1%B9%E7%9B%AE/%E9%A1%B9%E7%9B%AE%E9%83%A8%E7%BD%B2/vitepress/Nginx%E9%83%A8%E7%BD%B2.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>Nginx部署</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _%E5%85%B6%E4%BB%96_%E5%85%AB%E8%82%A1_%E5%85%B6%E4%BB%96_%E7%BD%91%E5%AE%89_%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8" data-v-39a288b8><div><h1 id="概述" tabindex="-1">概述 <a class="header-anchor" href="#概述" aria-label="Permalink to &quot;概述&quot;">​</a></h1><h2 id="信息安全的目标" tabindex="-1">信息安全的目标 <a class="header-anchor" href="#信息安全的目标" aria-label="Permalink to &quot;信息安全的目标&quot;">​</a></h2><ol><li>可用性 <ul><li>有权使用信息的人任何时候都能使用，无权使用的人任何时候都不能。</li></ul></li><li>保密性 <ul><li>防止信息泄露给未授权实体</li></ul></li><li>完整性 <ul><li>信息未经授权不能改变</li></ul></li><li>不可抵赖性</li><li>可控制性 <ul><li>对信息的传播过程及内容具有控制能力的特性</li></ul></li></ol><h2 id="p2dr安全模型" tabindex="-1">P2DR安全模型 <a class="header-anchor" href="#p2dr安全模型" aria-label="Permalink to &quot;P2DR安全模型&quot;">​</a></h2><ol><li>策略（Policy） <ul><li>为实现信息系统的安全目标，对所有与信息系统安全相关的活动所制定的策略</li></ul></li><li>防护(Protection) <ul><li>信息安全的安全保护措施</li></ul></li><li>检测(detection) <ul><li>了解和评估信息系统的安全状态，发现信息系统异常行为的机制。</li></ul></li><li>响应(Response) <ul><li>发现信息系统异常行为后采取的行动</li></ul></li></ol><h2 id="信息保障技术框架-iatf" tabindex="-1">信息保障技术框架（IATF） <a class="header-anchor" href="#信息保障技术框架-iatf" aria-label="Permalink to &quot;信息保障技术框架（IATF）&quot;">​</a></h2><p>核心要素：人员、技术、运行</p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107164437893.png" alt="image-20250107164437893"></p><h1 id="网络攻击" tabindex="-1">网络攻击 <a class="header-anchor" href="#网络攻击" aria-label="Permalink to &quot;网络攻击&quot;">​</a></h1><h2 id="分类" tabindex="-1">分类 <a class="header-anchor" href="#分类" aria-label="Permalink to &quot;分类&quot;">​</a></h2><ol><li><p>主动攻击（可以破坏信息的保密性、完整性和可用性）</p><ul><li>篡改信息</li><li>欺骗攻击</li><li>拒绝服务攻击</li><li><strong>重放攻击</strong></li></ul></li><li><p>被动攻击（一般只破坏保密性）</p><ul><li>嗅探信息</li><li>非法访问</li><li>数据流分析</li></ul></li></ol><h2 id="嗅探攻击" tabindex="-1">嗅探攻击 <a class="header-anchor" href="#嗅探攻击" aria-label="Permalink to &quot;嗅探攻击&quot;">​</a></h2><h3 id="原理" tabindex="-1">原理 <a class="header-anchor" href="#原理" aria-label="Permalink to &quot;原理&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107163113576.png" alt="image-20250107163113576"></p><h3 id="后果" tabindex="-1">后果 <a class="header-anchor" href="#后果" aria-label="Permalink to &quot;后果&quot;">​</a></h3><ul><li><p>破坏信息的保密性。</p></li><li><p>嗅探攻击是实现数据流分析攻击的前提。</p></li><li><p>实施重放攻击。</p></li></ul><h3 id="集线器和嗅探攻击" tabindex="-1">集线器和嗅探攻击 <a class="header-anchor" href="#集线器和嗅探攻击" aria-label="Permalink to &quot;集线器和嗅探攻击&quot;">​</a></h3><blockquote><p>网卡工作模式</p><p>广播模式：响应目的地址为广播地址的数据帧</p><p>直接模式：响应与目的地址与自己的MAC地址相匹配的数据帧</p><p>混杂模式：所有流经网卡的数据帧都会被上传给网络层， 即接收所有的数据帧</p></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107163441227.png" alt="image-20250107163441227"></p><h3 id="交换机和mac表溢出攻击" tabindex="-1">交换机和MAC表溢出攻击 <a class="header-anchor" href="#交换机和mac表溢出攻击" aria-label="Permalink to &quot;交换机和MAC表溢出攻击&quot;">​</a></h3><h4 id="建立mac表" tabindex="-1">建立MAC表 <a class="header-anchor" href="#建立mac表" aria-label="Permalink to &quot;建立MAC表&quot;">​</a></h4><ol><li>交换机刚启动时，MAC地址表内无表项</li><li>交换机学习</li><li>地址表的容量有限</li><li>若发现一个帧的入端口和地址表中源MAC地址的所在端口不同，交换机将MAC 地址重新学习到新的端口</li></ol><h4 id="溢出攻击" tabindex="-1">溢出攻击 <a class="header-anchor" href="#溢出攻击" aria-label="Permalink to &quot;溢出攻击&quot;">​</a></h4><blockquote><p>关键在于利用表的更新机制破坏地址表</p></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107164134537.png" alt="image-20250107164134537"></p><h3 id="防御" tabindex="-1">防御 <a class="header-anchor" href="#防御" aria-label="Permalink to &quot;防御&quot;">​</a></h3><ol><li>防止黑客终端接入集线器</li><li>防止黑客终端接入交换机</li><li>交换机需要具有防御MAC表溢出攻击的机制</li><li>对于无线通信过程，嗅探攻击是无法避免的，这种情况下，需要对传输的信息进行加密</li></ol><h2 id="截获攻击" tabindex="-1">截获攻击 <a class="header-anchor" href="#截获攻击" aria-label="Permalink to &quot;截获攻击&quot;">​</a></h2><h3 id="原理-1" tabindex="-1">原理 <a class="header-anchor" href="#原理-1" aria-label="Permalink to &quot;原理&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107165018380.png" alt="image-20250107165018380"></p><h3 id="后果-1" tabindex="-1">后果 <a class="header-anchor" href="#后果-1" aria-label="Permalink to &quot;后果&quot;">​</a></h3><ol><li><p>获得用户的私密信息</p></li><li><p>篡改信息</p></li><li><p>实施重放攻击</p></li></ol><h3 id="mac地址欺骗" tabindex="-1">MAC地址欺骗 <a class="header-anchor" href="#mac地址欺骗" aria-label="Permalink to &quot;MAC地址欺骗&quot;">​</a></h3><blockquote><p>若发现一个帧的入端口和地址表中源MAC地址的所在端口不同，交换机将MAC地址重新学习到新的端口</p></blockquote><ol><li><p>黑客终端接入以太网</p></li><li><p>将自己的MAC地址修改为终端D的MAC地址MAC_D</p></li><li><p>发送以MAC_D为源MAC地址、以广播地址为目的的MAC帧</p></li></ol><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107165628155.png" alt="image-20250107165628155"></p><h4 id="eg" tabindex="-1">eg <a class="header-anchor" href="#eg" aria-label="Permalink to &quot;eg&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107170344314.png" alt="image-20250107170344314"></p><ol><li>连接交换机S3的终端的端口3接入以太网</li><li>将自己MAC地址修改为MAC A</li><li>发生以MAC A 为源地址，目的地址为广播地址的MAC 帧</li></ol><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107170915302.png" alt="image-20250107170915302"></p><h4 id="防御-1" tabindex="-1">防御 <a class="header-anchor" href="#防御-1" aria-label="Permalink to &quot;防御&quot;">​</a></h4><ol><li>阻止黑客终端接入以太网</li><li>阻止黑客终端发送的伪造源MAC地址的以太网帧进入以太网</li><li>MAC地址与端口绑定</li><li>限制广播帧</li></ol><h3 id="arp欺骗攻击" tabindex="-1">ARP欺骗攻击 <a class="header-anchor" href="#arp欺骗攻击" aria-label="Permalink to &quot;ARP欺骗攻击&quot;">​</a></h3><blockquote><p>每个终端都有ARP缓冲区，一旦完成地址解析过程，ARP缓冲区建立IP地址与MAC地址的绑定项</p><p>以太网终端无法鉴别ARP请求报文中给出的IP地址与MAC地址绑定项的真伪。(不验证应答包)</p></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107174017406.png" alt="image-20250107174017406"></p><ol><li>黑客终端发送ARP请求报文（IP A MAC C）</li><li>其他终端建立IP A 与 MAC C 之间的绑定</li><li>将目的为IP A 的IP 分组封装成以MAC C 为目的帧</li></ol><ul><li>图中黑客终端仅有IP R应答</li></ul><h4 id="防御-2" tabindex="-1">防御 <a class="header-anchor" href="#防御-2" aria-label="Permalink to &quot;防御&quot;">​</a></h4><ol><li>设置静态ARP 绑定关系，即静态设置MAC-IP映射关系，避免被ARP欺骗攻击刷新缓存表。</li><li>静态配置路由器的ARP条目，确保到达IP地址的路径合法</li><li>根据需要禁用ARP协议</li><li>防火墙</li><li>以太网交换器提供鉴别ARP请求和响应报文的真伪。</li></ol><h3 id="dhcp欺骗攻击" tabindex="-1">DHCP欺骗攻击 <a class="header-anchor" href="#dhcp欺骗攻击" aria-label="Permalink to &quot;DHCP欺骗攻击&quot;">​</a></h3><blockquote><p>网络存在多个DHCP服务器时，终端随机选择一个提供网络信息</p><p>黑客可伪造DHCP服务器</p></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107175427903.png" alt="image-20250107175427903"></p><p>LAN1内其他终端通过伪造的DHCP服务器获取IP后，其默认网关是黑客终端，故向局域网的所有IP分组先传给黑客终端，黑客终端复制IP分组后，发送给真正的默认网关，使LAN1内终端始终感觉不到信息已被截获。</p><h3 id="生成树欺骗攻击" tabindex="-1">生成树欺骗攻击 <a class="header-anchor" href="#生成树欺骗攻击" aria-label="Permalink to &quot;生成树欺骗攻击&quot;">​</a></h3><blockquote><p>交换机工作原理要求交换机之间不存在环路。 交换机被分配唯一的标识符，交换机标识符值最小，优先级最高，为根交换机。</p></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107180259459.png" alt="image-20250107180259459"></p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250107180327603.png" alt="image-20250107180327603"></p><h4 id="防御-3" tabindex="-1">防御 <a class="header-anchor" href="#防御-3" aria-label="Permalink to &quot;防御&quot;">​</a></h4><p>对交换机进行相互认证，不允许黑客终端参与网络生成树建立过程</p><h3 id="路由项欺骗攻击" tabindex="-1">路由项欺骗攻击 <a class="header-anchor" href="#路由项欺骗攻击" aria-label="Permalink to &quot;路由项欺骗攻击&quot;">​</a></h3><h4 id="原理-2" tabindex="-1">原理 <a class="header-anchor" href="#原理-2" aria-label="Permalink to &quot;原理&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250110204251278.png" alt="image-20250110204251278"></p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250110204411534.png" alt="image-20250110204411534"></p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250110204540837.png" alt="image-20250110204540837"></p><h4 id="防御-4" tabindex="-1">防御 <a class="header-anchor" href="#防御-4" aria-label="Permalink to &quot;防御&quot;">​</a></h4><ol><li><p>验证路由消息</p><ul><li><p>验证消息源：鉴别路由消息的发送端</p></li><li><p>验证消息完整性</p></li></ul></li><li><p>确定路由消息是由经过认证的相邻路由器发送，且路由消息传输过程中没有被篡改后，才处理该路由消息，并根据处理结果更新路由表。</p></li></ol><h2 id="拒绝服务攻击" tabindex="-1">拒绝服务攻击 <a class="header-anchor" href="#拒绝服务攻击" aria-label="Permalink to &quot;拒绝服务攻击&quot;">​</a></h2><blockquote><p>用某种方法耗尽网络设备、链路或服务器资源，使其不能正常提供服务的攻击手段</p></blockquote><h3 id="syn泛洪" tabindex="-1">SYN泛洪 <a class="header-anchor" href="#syn泛洪" aria-label="Permalink to &quot;SYN泛洪&quot;">​</a></h3><blockquote><p>耗尽服务器资源，使服务器不能正常提供服务的攻击手段</p></blockquote><ol><li>快速消耗掉web服务器TCP会话表中连接项</li><li>伪造的、网络中不存在的IP地址发起TCP连接建立过程是成功实施SYN泛洪的关键</li></ol><h4 id="防御-5" tabindex="-1">防御 <a class="header-anchor" href="#防御-5" aria-label="Permalink to &quot;防御&quot;">​</a></h4><ol><li>防止源IP伪造</li><li>会话表只对处于完成状态的TCP连接分配连接项。</li><li>缩短SYN Timeout时间</li></ol><h3 id="smurf攻击" tabindex="-1">smurf攻击 <a class="header-anchor" href="#smurf攻击" aria-label="Permalink to &quot;smurf攻击&quot;">​</a></h3><blockquote><p>耗尽网络带宽，使被攻击终端不能和其他终端正常通信的攻击手段</p></blockquote><ol><li>伪造ICMP echo request包引起目标主机网络阻塞</li><li>以攻击目标IP为源IP，目的IP地址为广播地址的ECHO请求报文。实现放大攻击。</li></ol><h4 id="防御-6" tabindex="-1">防御 <a class="header-anchor" href="#防御-6" aria-label="Permalink to &quot;防御&quot;">​</a></h4><ol><li>阻止伪造的源IP地址的分组继续传输</li><li>阻止以直接广播地址为目的地址的IP分组继续传播</li><li>主机拒绝响应ICMP ECHO 请求报文</li></ol><h3 id="ddos" tabindex="-1">DDOS <a class="header-anchor" href="#ddos" aria-label="Permalink to &quot;DDOS&quot;">​</a></h3><ol><li>直接DDOS <ul><li>直接让肉鸡响应ICMP ECHO 报文</li></ul></li><li>间接DDOS <ul><li>控制肉鸡让正常主机响应ICMP ECHO 报文</li></ul></li></ol><h4 id="防御-7" tabindex="-1">防御 <a class="header-anchor" href="#防御-7" aria-label="Permalink to &quot;防御&quot;">​</a></h4><ol><li>减少肉鸡</li><li>使主机拒绝响应ICMP ECHO 请求报文</li><li>网络具有统计目的IP 地址相同的ICMP ECHO 响应报文</li></ol><h2 id="欺骗攻击" tabindex="-1">欺骗攻击 <a class="header-anchor" href="#欺骗攻击" aria-label="Permalink to &quot;欺骗攻击&quot;">​</a></h2><ol><li><p>攻击源欺骗攻击</p><ul><li><p>源IP地址欺骗攻击</p></li><li><p>口令入侵</p></li></ul></li><li><p>钓鱼网站</p><ul><li>DNS欺骗攻击</li><li>社会工程学</li></ul></li></ol><h2 id="非法接入和登录" tabindex="-1">非法接入和登录 <a class="header-anchor" href="#非法接入和登录" aria-label="Permalink to &quot;非法接入和登录&quot;">​</a></h2><h3 id="非法接入无线局域网" tabindex="-1">非法接入无线局域网 <a class="header-anchor" href="#非法接入无线局域网" aria-label="Permalink to &quot;非法接入无线局域网&quot;">​</a></h3><ol><li><p>黑客接入无线局域网需要完成</p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111112133148.png" alt="image-20250111112133148"></p></li><li><p>要完成这三个过程，必须解决两个问题</p><ol><li><p>获得BSS 的 SSID</p><ul><li>黑客终端可以通过侦听信标帧或探测响应帧获得AP的SSID</li><li><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111112506403.png" alt="image-20250111112506403"></li></ul></li><li><p>完成共享密钥鉴别机制下的身份鉴别</p><ul><li><p>共享密钥鉴别机制</p><ul><li><p>为所有终端分配一个共享密钥GK（AP和某个终端是否具有关联的依据：是否有共享密钥GK）</p></li><li><p>终端计算一次性密钥K，将K和P异或结果和初始向量IV发AP判断。</p><p>​ PRF为随机数生成函数</p></li><li><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111113627026.png" alt="image-20250111113627026"></p></li><li><p>GK和IV作为随机数种子是为了在共享密钥GK不变的情况下，改变一次性密钥K</p></li></ul></li><li><p>黑客终端欺骗AP</p><ul><li>由于无线电通信开放性，黑客可侦听带P、（Y,IV）</li><li><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111114423303.png" alt="image-20250111114423303"></li></ul></li></ul></li></ol></li></ol><h4 id="防御-8" tabindex="-1">防御 <a class="header-anchor" href="#防御-8" aria-label="Permalink to &quot;防御&quot;">​</a></h4><p>AP不用通过一次性密钥K异或挑战数P生成的Y来证明授权终端是否有GK</p><h3 id="非法登录" tabindex="-1">非法登录 <a class="header-anchor" href="#非法登录" aria-label="Permalink to &quot;非法登录&quot;">​</a></h3><blockquote><p>非授权用户远程登录网络设备和Web服务器，并对网络设备和Web服务器进行非法配置的攻击行为</p></blockquote><ol><li>暴力破解</li><li>社会工程学获取用户名密码</li><li>截获用户名密码</li><li>……</li></ol><h2 id="黑客入侵" tabindex="-1">黑客入侵 <a class="header-anchor" href="#黑客入侵" aria-label="Permalink to &quot;黑客入侵&quot;">​</a></h2><h2 id="扫描三步曲" tabindex="-1">扫描三步曲 <a class="header-anchor" href="#扫描三步曲" aria-label="Permalink to &quot;扫描三步曲&quot;">​</a></h2><ol><li>获取网络拓扑结构</li><li>获取操作系统类型及版本</li><li>获取应用程序类型及版本</li></ol><h1 id="接入控制和访问控制" tabindex="-1">接入控制和访问控制 <a class="header-anchor" href="#接入控制和访问控制" aria-label="Permalink to &quot;接入控制和访问控制&quot;">​</a></h1><h2 id="身份鉴别" tabindex="-1">身份鉴别 <a class="header-anchor" href="#身份鉴别" aria-label="Permalink to &quot;身份鉴别&quot;">​</a></h2><blockquote><p>身份鉴别是验证主体身份与其声称身份是否符合的过程。主体可以是用户、进程和主机等。</p></blockquote><ol><li><p>分类：1. 单向鉴别 2. 双向鉴别 3. 第三方鉴别</p><ul><li><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111120443230.png" alt="image-20250111120443230"></li></ul></li><li><p>实施：</p><ul><li><p>主体拥有唯一的身份标识信息（前提）</p><ul><li>网络中主要用密钥、用户名和口令、证书和私钥作为主体的身份标识信息</li></ul></li><li><p>主体以安全的方式（防重放、防假冒）向对方证明其拥有这个标识信息</p></li></ul></li></ol><h3 id="单向身份鉴别" tabindex="-1">单向身份鉴别 <a class="header-anchor" href="#单向身份鉴别" aria-label="Permalink to &quot;单向身份鉴别&quot;">​</a></h3><h4 id="基于共享密钥" tabindex="-1">基于共享密钥 <a class="header-anchor" href="#基于共享密钥" aria-label="Permalink to &quot;基于共享密钥&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111120828062.png" alt="image-20250111120828062"></p><h4 id="基于用户名和口令" tabindex="-1">基于用户名和口令 <a class="header-anchor" href="#基于用户名和口令" aria-label="Permalink to &quot;基于用户名和口令&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111120954006.png" alt="image-20250111120954006"></p><h4 id="基于证书和私钥" tabindex="-1">基于证书和私钥 <a class="header-anchor" href="#基于证书和私钥" aria-label="Permalink to &quot;基于证书和私钥&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111121209567.png" alt="image-20250111121209567"></p><h3 id="双向身份鉴别" tabindex="-1">双向身份鉴别 <a class="header-anchor" href="#双向身份鉴别" aria-label="Permalink to &quot;双向身份鉴别&quot;">​</a></h3><h4 id="基于共享密钥-1" tabindex="-1">基于共享密钥 <a class="header-anchor" href="#基于共享密钥-1" aria-label="Permalink to &quot;基于共享密钥&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111121555085.png" alt="image-20250111121555085"></p><h4 id="基于用户名和口令-1" tabindex="-1">基于用户名和口令 <a class="header-anchor" href="#基于用户名和口令-1" aria-label="Permalink to &quot;基于用户名和口令&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111121659557.png" alt="image-20250111121659557"></p><h4 id="基于证书和私钥-1" tabindex="-1">基于证书和私钥 <a class="header-anchor" href="#基于证书和私钥-1" aria-label="Permalink to &quot;基于证书和私钥&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111121742250.png" alt="image-20250111121742250"></p><h3 id="第三方鉴别" tabindex="-1">第三方鉴别 <a class="header-anchor" href="#第三方鉴别" aria-label="Permalink to &quot;第三方鉴别&quot;">​</a></h3><blockquote><p>引出第三方鉴别的原因</p><p>无需鉴别者拥有用于证明公钥与示证者之间绑定关系的证书（鉴别者和示证者经常变换的情况下，该过程非常复杂）。由权威机构提供与示证者绑定的公钥。且公钥与示证者之间的绑定关系由权威机构予以证明。</p></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111122027427.png" alt="image-20250111122027427"></p><h2 id="internet接入控制" tabindex="-1">Internet接入控制 <a class="header-anchor" href="#internet接入控制" aria-label="Permalink to &quot;Internet接入控制&quot;">​</a></h2><blockquote><p>终端接入Internet 过程：在建立的终端和Internet中的资源传输路径上，注册用户使用终端接入Internet的过程</p><ol><li>鉴别是否是注册用户</li><li>允许注册用户终端建立与Internet资源之间的传输路径</li></ol></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111135422722.png" alt="image-20250111135422722"></p><p>接入控制设备：</p><ol><li>具有普通路由器功能</li><li>接入控制功能： <ul><li>鉴别终端的用户身份</li><li>为终端动态分配IP</li><li>建立终端的路由项（终端的IP地址和接入控制设备之间传输路径的绑定在一起路由项）</li></ul></li></ol><h3 id="终端接入internet的过程" tabindex="-1">终端接入Internet的过程 <a class="header-anchor" href="#终端接入internet的过程" aria-label="Permalink to &quot;终端接入Internet的过程&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111140012256.png" alt="image-20250111140012256"></p><h3 id="ppp接入控制" tabindex="-1">PPP接入控制 <a class="header-anchor" href="#ppp接入控制" aria-label="Permalink to &quot;PPP接入控制&quot;">​</a></h3><blockquote><p>PPP既是基于点对点信道的链路层协议，又是接入控制协议</p><p>采用PPP作为接入控制协议的原因：PPP帧是适合点对点语音信道传输的帧格式</p></blockquote><h4 id="用户身份鉴别协议" tabindex="-1">用户身份鉴别协议 <a class="header-anchor" href="#用户身份鉴别协议" aria-label="Permalink to &quot;用户身份鉴别协议&quot;">​</a></h4><p>PAP（口令鉴别协议）和CHAP（挑战握手鉴别协议）</p><h5 id="pap" tabindex="-1">PAP <a class="header-anchor" href="#pap" aria-label="Permalink to &quot;PAP&quot;">​</a></h5><blockquote><p>安全性最低</p><p>以明文方式向接入控制设备发送用户名和口令。</p></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111140948833.png" alt="image-20250111140948833"></p><h5 id="chap" tabindex="-1">CHAP <a class="header-anchor" href="#chap" aria-label="Permalink to &quot;CHAP&quot;">​</a></h5><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111141037404.png" alt="image-20250111141037404"></p><h4 id="ipcp-ip控制协议" tabindex="-1">IPCP(IP控制协议) <a class="header-anchor" href="#ipcp-ip控制协议" aria-label="Permalink to &quot;IPCP(IP控制协议)&quot;">​</a></h4><ol><li><p>为终端动态分配IP等网络信息</p></li><li><p>分配前提：确定终端接入Internet的过程的用户就是注册用户</p></li><li><p>即NCP</p></li></ol><h4 id="ppp接入控制过程" tabindex="-1">PPP接入控制过程 <a class="header-anchor" href="#ppp接入控制过程" aria-label="Permalink to &quot;PPP接入控制过程&quot;">​</a></h4><ol><li>物理链路停止 <ul><li>PPP的开始也是结束状态</li></ul></li><li>PPP链路建立 <ul><li>用于PPP链路建立的协议LCP（链路控制协议），建立PPP链路时双方传送LCP帧。</li></ul></li><li>用户身份鉴别 <ul><li>鉴别用户是否为注册用户</li></ul></li><li>网络层协议配置</li><li>终止PPP链路 <ul><li>终端和接入控制设备释放建立PPP链路时分配的资源，PPP回到物理链路停止状态。</li></ul></li></ol><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111141748281.png" alt="image-20250111141748281"></p><h2 id="eap-拓展鉴别协议" tabindex="-1">EAP(拓展鉴别协议) <a class="header-anchor" href="#eap-拓展鉴别协议" aria-label="Permalink to &quot;EAP(拓展鉴别协议)&quot;">​</a></h2><blockquote><p>引入EAP的原因：多种应用环境和多种鉴别协议两两组合带来的复杂性。</p></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111143203204.png" alt="image-20250111143203204"></p><p>先定义一种和应用环境无关的、用于传输鉴别协议消息的载体协议，所有应用环境和鉴别协议都和这种载体协议绑定。</p><h3 id="eap操作模型" tabindex="-1">EAP操作模型 <a class="header-anchor" href="#eap操作模型" aria-label="Permalink to &quot;EAP操作模型&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111143755022.png" alt="image-20250111143755022"></p><ol><li><p>鉴别者向用户发送请求报文，用户向鉴别者回送响应报文。</p></li><li><p>不同的鉴别机制有不同的请求报文和响应报文的内容</p></li><li><p>不同的鉴别机制有着不同的请求响应过程</p></li><li><p>EAP定义四种报文：请求、响应、成功、失败</p></li></ol><h3 id="eap报文格式" tabindex="-1">EAP报文格式 <a class="header-anchor" href="#eap报文格式" aria-label="Permalink to &quot;EAP报文格式&quot;">​</a></h3><blockquote><p>不同用户可能采用不同鉴别机制，在开始鉴别过程前，确定用户身份，然后选择对应的鉴别机制鉴别身份</p></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111144210966.png" alt="image-20250111144210966"></p><ul><li>编码字段：报文的类型</li><li>标识符字段：匹配请求和响应报文 <ul><li>相邻两次请求/响应过程必须采用不同的标识符。</li></ul></li><li>长度字段：EAP报文总的长度</li><li>数据字段：第1个字节是类型字段，用于给出数据内容类型，对应不同的认证机制</li></ul><h3 id="eap-over-ppp" tabindex="-1">EAP over PPP <a class="header-anchor" href="#eap-over-ppp" aria-label="Permalink to &quot;EAP over PPP&quot;">​</a></h3><h4 id="ppp封装eap报文过程" tabindex="-1">PPP封装EAP报文过程 <a class="header-anchor" href="#ppp封装eap报文过程" aria-label="Permalink to &quot;PPP封装EAP报文过程&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111144713891.png" alt="image-20250111144713891"></p><h4 id="鉴别过程" tabindex="-1">鉴别过程 <a class="header-anchor" href="#鉴别过程" aria-label="Permalink to &quot;鉴别过程&quot;">​</a></h4><blockquote><p>记得写鉴别数据库</p></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111145139325.png" alt="image-20250111145139325"></p><ol><li><p>根据CHAP交换鉴别信息</p></li><li><p>鉴别信息交换过程通过EAP请求/响应过程完成</p></li><li><p>EAP报文封装成PPP帧。</p></li></ol><h2 id="_802-1x" tabindex="-1">802.1X <a class="header-anchor" href="#_802-1x" aria-label="Permalink to &quot;802.1X&quot;">​</a></h2><blockquote><p>基于端口的访问控制</p><p>实现用户身份鉴别，并开通连接有以太网接入权限的用户终端的端口的接入控制协议。</p><p>通过EAP完成对接入用户的身份鉴别过程</p></blockquote><h3 id="_802-1x操作模型" tabindex="-1">802.1X操作模型 <a class="header-anchor" href="#_802-1x操作模型" aria-label="Permalink to &quot;802.1X操作模型&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111150527341.png" alt="image-20250111150527341"></p><ol><li>一个物理端口被虚化为两个端口受控端口和非受控端口。</li><li>EAPOL 给出了EAP报文封装成LAN对应的帧格式。</li><li>一但以太网交换机的某个端口开启802.1X鉴别功能，就成为了非受控端口，该端口只能输入输出EAP报文和广播帧，只有成功完成对接入端口的用户身份鉴别后，才能正常输入输出帧</li></ol><h3 id="eapol报文格式" tabindex="-1">EAPOL报文格式 <a class="header-anchor" href="#eapol报文格式" aria-label="Permalink to &quot;EAPOL报文格式&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111151246516.png" alt="image-20250111151246516"></p><h3 id="_802-1x鉴别接入用户身份的过程" tabindex="-1">802.1X鉴别接入用户身份的过程 <a class="header-anchor" href="#_802-1x鉴别接入用户身份的过程" aria-label="Permalink to &quot;802.1X鉴别接入用户身份的过程&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111151358102.png" alt="image-20250111151358102"></p><p>与EAP over PPP两点不同：1. 用户向鉴别者发送请求 2. PPP-&gt;EAPOL</p><h3 id="以太网接入控制过程" tabindex="-1">以太网接入控制过程 <a class="header-anchor" href="#以太网接入控制过程" aria-label="Permalink to &quot;以太网接入控制过程&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111151705553.png" alt="image-20250111151705553"></p><h2 id="radius-远程鉴别拨入用户服务" tabindex="-1">RADIUS(远程鉴别拨入用户服务) <a class="header-anchor" href="#radius-远程鉴别拨入用户服务" aria-label="Permalink to &quot;RADIUS(远程鉴别拨入用户服务)&quot;">​</a></h2><ol><li><p>为了在<a href="#802.1X操作模型">802.1X操作模型</a>中实施统一鉴别，由鉴别服务器统一完成用户身份鉴别功能。</p></li><li><p>RADIUS 实现鉴别者与鉴别服务器之间双向身份鉴别和身份标识信息传输的应用层协议。</p></li></ol><h3 id="radius和eap协调完成用户身份鉴别过程" tabindex="-1">RADIUS和EAP协调完成用户身份鉴别过程 <a class="header-anchor" href="#radius和eap协调完成用户身份鉴别过程" aria-label="Permalink to &quot;RADIUS和EAP协调完成用户身份鉴别过程&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111152625473.png" alt="image-20250111152625473"></p><h1 id="安全协议" tabindex="-1">安全协议 <a class="header-anchor" href="#安全协议" aria-label="Permalink to &quot;安全协议&quot;">​</a></h1><h2 id="功能" tabindex="-1">功能 <a class="header-anchor" href="#功能" aria-label="Permalink to &quot;功能&quot;">​</a></h2><ol><li>双向身份鉴别</li><li>数据加密</li><li>数据完整性检测</li><li>防重放攻击机制</li></ol><h2 id="安全协议体系结构" tabindex="-1">安全协议体系结构 <a class="header-anchor" href="#安全协议体系结构" aria-label="Permalink to &quot;安全协议体系结构&quot;">​</a></h2><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111153412996.png" alt="image-20250111153412996"></p><h2 id="ipsec" tabindex="-1">IPSec <a class="header-anchor" href="#ipsec" aria-label="Permalink to &quot;IPSec&quot;">​</a></h2><blockquote><ol><li><p>AH 和 ESP 均实现 IP分组源端鉴别和防重放攻击。</p></li><li><p>AH只实现数据完整性检测</p></li><li><p>ESP实现数据加密和完整性检测</p></li><li><p>IKE：实现安全关联的动态建立过程。完成安全关联两端之间的双向身份鉴别过程和安全关联相关安全参数的协商过程。</p></li></ol></blockquote><h3 id="安全关联-sa" tabindex="-1">安全关联（SA） <a class="header-anchor" href="#安全关联-sa" aria-label="Permalink to &quot;安全关联（SA）&quot;">​</a></h3><ol><li><p>以实现源端鉴别、数据加密和完整性检测为目的的关联称为安全关联（SA）。</p></li><li><p>安全关联是单向的，用于确定发送者至接收者方向传输方向的安全传输过程所使用的加密算法、加密密钥、MAC（消息鉴别码）算法和MAC密钥等。</p></li><li><p>安全关联由<strong>SPI（安全参数索引）、目的的IP地址和安全协议标识符</strong>唯一标识</p><ul><li>具有相同接收者（目的IP相同）的安全关联需要分配不同的SPI</li><li>安全协议标识符指定安全协议，目前有AH协议，ESP协议</li></ul></li></ol><h3 id="spd-安全策略数据库" tabindex="-1">SPD（安全策略数据库） <a class="header-anchor" href="#spd-安全策略数据库" aria-label="Permalink to &quot;SPD（安全策略数据库）&quot;">​</a></h3><ol><li><p>SPD的目的是将数据分类，然后对不同类的数据施加不同的安全策略，这些安全策略可以是丢弃、使用IPSec和不使用IPSec</p></li><li><p>分类数据的依据是数据的源和目的IP地址、数据所使用的传输层协议、传输层源和目的端口号、传输数据使用的安全协议、数据所要求的服务类型等</p></li></ol><h3 id="工作模式" tabindex="-1">工作模式 <a class="header-anchor" href="#工作模式" aria-label="Permalink to &quot;工作模式&quot;">​</a></h3><ol><li>传输模式 <ul><li><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111174533116.png" alt="image-20250111174533116"></li><li>保护的数据为IP分组的净荷，如TCP、UDP报文和其他基于IP的上层协议报文</li><li>用于保证数据端到端安全传输，并鉴别数据源端</li></ul></li><li>隧道模式 <ul><li>保护的数据是IP分组，将整个IP分组作为另一个IP分组的净荷的封装方式</li><li>隧道可以建立在任意的两个网络节点之间，安全关联的两端是隧道的两端，点到点的保护数据安全</li><li><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111174758574.png" alt="image-20250111174758574"></li></ul></li></ol><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111175014986.png" alt="image-20250111175014986"></p><h3 id="防重放攻击" tabindex="-1">防重放攻击 <a class="header-anchor" href="#防重放攻击" aria-label="Permalink to &quot;防重放攻击&quot;">​</a></h3><p>黑客可以重复转发截获的AH或ESP报文，或是延迟一段时间后，再转发截获的AH或ESP报文。</p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111175720117.png" alt="image-20250111175720117"></p><ol><li>如果报文序号小于N-W+1，或该序号已被正确接收，丢弃该报文。</li><li>如果报文序号在窗口范围内，且未接收过该序号对应的报文，接收该报文并将该序号对应标志改为正确接收。</li><li>如果报文序号大于N，假定为L（L&gt;N），将窗口改为[L-W+1,L],并将序号L对应的标注改为已正确接收该序号对应的报文。</li></ol><h3 id="ah" tabindex="-1">AH <a class="header-anchor" href="#ah" aria-label="Permalink to &quot;AH&quot;">​</a></h3><h4 id="报文格式" tabindex="-1">报文格式 <a class="header-anchor" href="#报文格式" aria-label="Permalink to &quot;报文格式&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111180543510.png" alt="image-20250111180543510"></p><ol><li><p>下一个首部</p><ul><li>传输模式or隧道模式？</li></ul></li><li><p>鉴别首部长度</p><ul><li>AH总长，单位（32位字）</li><li>实际长=AH总长-2</li><li>eg: AH的总长为6个32位字，鉴别首部长度字段为4</li></ul></li><li><p>序号</p><ul><li>防重放</li></ul></li><li><p>鉴别数据</p><ul><li>MAC,实现源端身份鉴别和数据完整性认证。</li></ul></li></ol><h4 id="实例" tabindex="-1">实例 <a class="header-anchor" href="#实例" aria-label="Permalink to &quot;实例&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111181929143.png" alt="image-20250111181929143"></p><p>AH源端鉴别和完整性检测过程（左右分别为发送端和接收端）<img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111181936399.png" alt="image-20250111181936399"></p><h3 id="esp" tabindex="-1">ESP <a class="header-anchor" href="#esp" aria-label="Permalink to &quot;ESP&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111231044703.png" alt="image-20250111231044703"></p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111231312985.png" alt="image-20250111231312985"></p><ol><li>填充长度：为了满足加密算法的需要。</li></ol><h3 id="esp-ah" tabindex="-1">ESP-AH <a class="header-anchor" href="#esp-ah" aria-label="Permalink to &quot;ESP-AH&quot;">​</a></h3><p>先加密后认证：<img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111231954784.png" alt="image-20250111231954784"></p><p>先认证后加密：<img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111232049253.png" alt="image-20250111232049253"></p><h3 id="ike-internet-密钥交换协议" tabindex="-1">IKE(Internet 密钥交换协议) <a class="header-anchor" href="#ike-internet-密钥交换协议" aria-label="Permalink to &quot;IKE(Internet 密钥交换协议)&quot;">​</a></h3><blockquote><p>IKE是一个安全协商SA的协议</p></blockquote><h4 id="静态安全关联和动态安全关联" tabindex="-1">静态安全关联和动态安全关联 <a class="header-anchor" href="#静态安全关联和动态安全关联" aria-label="Permalink to &quot;静态安全关联和动态安全关联&quot;">​</a></h4><ol><li>静态安全关联建立机制由人工完成发送端和接收端中安全关联数据库（SAD）的配置过程。</li><li>动态安全关联建立机制根据安全传输数据的需要，通过协议建立发送端至接收端的安全关联，协商与该安全关联相关的参数</li></ol><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111233938217.png" alt="image-20250111233938217"></p><h2 id="tls" tabindex="-1">TLS <a class="header-anchor" href="#tls" aria-label="Permalink to &quot;TLS&quot;">​</a></h2><blockquote><p>IPSec通过安全关联实现IP分组安全关联两端之间的安全传输过程，TLS通过建立安全连接实现数据在两个应用进程之间的双向身份鉴别过程。</p><p>引入原因：对于许多客户/服务器应用结构，实现双向身份鉴别与保证相互交换的数据的保密性和完整性是非常重要的</p></blockquote><p>TLS记录协议：封装上层协议消息</p><p>TLS握手协议：实现身份鉴别和安全参数协商</p><h3 id="tls记录协议封装过程" tabindex="-1">TLS记录协议封装过程 <a class="header-anchor" href="#tls记录协议封装过程" aria-label="Permalink to &quot;TLS记录协议封装过程&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250111234909984.png" alt="image-20250111234909984"></p><h4 id="tls握手协议" tabindex="-1">TLS握手协议 <a class="header-anchor" href="#tls握手协议" aria-label="Permalink to &quot;TLS握手协议&quot;">​</a></h4><p>4个阶段</p><h2 id="https" tabindex="-1">HTTPS <a class="header-anchor" href="#https" aria-label="Permalink to &quot;HTTPS&quot;">​</a></h2><ol><li><p>基于SSL/TLS</p></li><li><p>在TCP基础上建立TLS安全连接，经过TLS安全连接实现：</p><ul><li>对Web服务器的身份鉴别</li><li>浏览器和Web服务器之间传输的HTTP消息的保密性、完整性和源端鉴别</li></ul></li></ol><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112000241508.png" alt="image-20250112000241508"></p><h2 id="dns-sec" tabindex="-1">DNS Sec <a class="header-anchor" href="#dns-sec" aria-label="Permalink to &quot;DNS Sec&quot;">​</a></h2><blockquote><p>实现DNS响应消息的源端鉴别和消息完整性检测，保证响应消息真实性和完整性</p><p>域名服务器之间的关系通过域名服务器中类型为NS的资源记录体现</p></blockquote><h3 id="安全威胁" tabindex="-1">安全威胁 <a class="header-anchor" href="#安全威胁" aria-label="Permalink to &quot;安全威胁&quot;">​</a></h3><ol><li>DNS响应消息的接收端没有源端鉴别机制，黑客终端可以伪造DNS响应消息，导致完全合格的域名和错误的IP地址（可能是黑客终端地址）绑定</li><li>DNS响应消息没有完整性保护机制，黑客可以篡改DNS响应消息，篡改域名服务器的IP地址或某个完全合格的域名与IP地址之间的绑定关系</li></ol><p>DNS Sec采用基于公钥的方法解决两个安全问题</p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112002134234.png" alt="image-20250112002134234"></p><ul><li>每一个域生成私钥和公钥对</li><li>每一个域名服务器配置上一级域域名服务器的公钥，通过DNSKEY类型的资源记录指定</li></ul><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112002246899.png" alt="image-20250112002246899"></p><p>P158</p><h2 id="set" tabindex="-1">SET <a class="header-anchor" href="#set" aria-label="Permalink to &quot;SET&quot;">​</a></h2><blockquote><p>解决持卡人、商家和银行之间基于Internet进行的电子交易过程中（实现安全的电子购物）的安全性而设计的协议。</p></blockquote><p>持卡人封装处理过程:<img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112005119761.png" alt="image-20250112005119761"></p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112005253767.png" alt="image-20250112005253767"></p><h3 id="双重签名" tabindex="-1">双重签名 <a class="header-anchor" href="#双重签名" aria-label="Permalink to &quot;双重签名&quot;">​</a></h3><p>双重签名：将PI（支付信息） 和 OI（订单信息）持卡人必须能同时向商家和支付网关证明这一次电子消息中涉及的两组信息确实由持卡人给出，还需将这两组信息绑定在一起。</p><p>商家不能获得PI，只能给他PIMD</p><p>支付网关不能获得OI，只能给他OIMD</p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112010506912.png" alt="image-20250112010506912"></p><h2 id="pgp" tabindex="-1">PGP <a class="header-anchor" href="#pgp" aria-label="Permalink to &quot;PGP&quot;">​</a></h2><blockquote><p>实现邮件发送端身份鉴别，保证邮件传输过程的保密性和完整性的安全协议。</p></blockquote><h1 id="以太网安全技术" tabindex="-1">以太网安全技术 <a class="header-anchor" href="#以太网安全技术" aria-label="Permalink to &quot;以太网安全技术&quot;">​</a></h1><h2 id="增强以太网交换机安全功能" tabindex="-1">增强以太网交换机安全功能 <a class="header-anchor" href="#增强以太网交换机安全功能" aria-label="Permalink to &quot;增强以太网交换机安全功能&quot;">​</a></h2><ol><li>MAC表溢出攻击的解决思路</li></ol><p>限制每一个端口允许接收的源MAC地址不同的MAC帧的数量</p><ol start="2"><li>MAC地址欺骗攻击的解决思路</li></ol><p>由管理员确定每一个交换机端口连接的终端的MAC地址，每一个交换机端口只允许接收合法源MAC地址的MAC帧。</p><ol start="3"><li>ARP欺骗攻击的解决思路</li></ol><p>交换机中建立正确的MAC地址与IP地址之间的绑定关系，检测ARP请求报文或响应报文中指定的MAC地址与IP地址之间绑定关系的正确性</p><ol start="4"><li>DHCP欺骗攻击的解决思路</li></ol><p>由管理员确定允许接收DHCP响应消息的交换机端口，丢弃所有从其他端口接收到的DHCP响应消息。</p><ol start="5"><li>生成树欺骗攻击</li></ol><p>由管理员确定参与生成树建立过程的交换机端口，其他交换机端口一律丢弃接收到的BPDU</p><h2 id="以太网接入控制技术" tabindex="-1">以太网接入控制技术 <a class="header-anchor" href="#以太网接入控制技术" aria-label="Permalink to &quot;以太网接入控制技术&quot;">​</a></h2><h3 id="静态配置访问控制列表" tabindex="-1">静态配置访问控制列表 <a class="header-anchor" href="#静态配置访问控制列表" aria-label="Permalink to &quot;静态配置访问控制列表&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112104647545.png" alt="image-20250112104647545"></p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112104931942.png" alt="image-20250112104931942"></p><p>交换机有关访问控制列表的配置如下：</p><ol><li>所有交换机启动接入访问控制功能，配置上图中的访问控制列表</li></ol><h3 id="安全端口" tabindex="-1">安全端口 <a class="header-anchor" href="#安全端口" aria-label="Permalink to &quot;安全端口&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112104819864.png" alt="image-20250112104819864"></p><p>以太网接入控制过程解决：1.限制源MAC地址不同的MAC帧数量，防MAC表溢出攻击2. 指定交换机端口终端的MAC地址，防MAC地址欺骗攻击</p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112113217449.png" alt="image-20250112113217449"></p><p>交换机安全端口配置：</p><ol><li>所有交换机启动接入访问控制功能</li><li>S1.1、S1.2、S3.1、S3.2启动安全端口功能，并将自动学习到的MAC地址数设置为1</li><li>S1.3、S2.1、S2.2、S3.3启动安全端口功能，并将自动学习到的MAC地址数设置为2</li></ol><h3 id="_802-1x-1" tabindex="-1">802.1X <a class="header-anchor" href="#_802-1x-1" aria-label="Permalink to &quot;802.1X&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112105154736.png" alt="image-20250112105154736"></p><p>以下情况下，交换机删除访问控制列表中的MAC地址：</p><ul><li>用户退出网络访问过程</li><li>在规定时间内没有接收到来自于该MAC的帧</li></ul><h3 id="防欺骗攻击" tabindex="-1">防欺骗攻击 <a class="header-anchor" href="#防欺骗攻击" aria-label="Permalink to &quot;防欺骗攻击&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112111227519.png" alt="image-20250112111227519"></p><p>与交换机和DHCP服务器相连的为信任端口</p><h4 id="防arp欺骗攻击" tabindex="-1">防ARP欺骗攻击 <a class="header-anchor" href="#防arp欺骗攻击" aria-label="Permalink to &quot;防ARP欺骗攻击&quot;">​</a></h4><p>不合法的ARP报文，交换机查看DHCP帧听信息库后将丢弃。</p><h4 id="防源ip地址欺骗" tabindex="-1">防源IP地址欺骗 <a class="header-anchor" href="#防源ip地址欺骗" aria-label="Permalink to &quot;防源IP地址欺骗&quot;">​</a></h4><p>当交换机通过非信任端口接收到某个IP分组，用该IP分组的源IP地址和封装该IP分组的MAC帧的源MAC地址匹配交换机的DHCP侦听信息库</p><h3 id="生成树欺骗攻击与防御机制" tabindex="-1">生成树欺骗攻击与防御机制 <a class="header-anchor" href="#生成树欺骗攻击与防御机制" aria-label="Permalink to &quot;生成树欺骗攻击与防御机制&quot;">​</a></h3><ol><li><p>交换机中有两类端口</p><ul><li><p>实现交换机之间互连的端口，称为主干端口</p></li><li><p>直接连接终端的端口，称为接入端口</p></li></ul></li><li><p>将交换机接入端口设置成不运行生成树协议的端口，该端口不会发送、接收BPDU</p></li></ol><h1 id="无线局域网安全技术" tabindex="-1">无线局域网安全技术 <a class="header-anchor" href="#无线局域网安全技术" aria-label="Permalink to &quot;无线局域网安全技术&quot;">​</a></h1><h2 id="wep" tabindex="-1">WEP <a class="header-anchor" href="#wep" aria-label="Permalink to &quot;WEP&quot;">​</a></h2><h3 id="缺陷" tabindex="-1">缺陷 <a class="header-anchor" href="#缺陷" aria-label="Permalink to &quot;缺陷&quot;">​</a></h3><ol><li>只能实现AP对终端单向身份鉴别</li><li>CRC-32作为完整性检验值会导致接收端无法检测出已经发生的篡改。</li></ol><h2 id="安全缺陷" tabindex="-1">安全缺陷 <a class="header-anchor" href="#安全缺陷" aria-label="Permalink to &quot;安全缺陷&quot;">​</a></h2><ol><li>共享密钥鉴别机制缺陷-异或加密机制漏洞</li><li>初始向量太短-加密机制漏洞</li><li>完整性认证机制的安全缺陷——CRC线性漏洞</li><li>静态共享密钥配置漏洞 <ul><li>同一BSS的所有终端共享相同的密钥且静态配置</li></ul></li></ol><h2 id="_802-11i" tabindex="-1">802.11i <a class="header-anchor" href="#_802-11i" aria-label="Permalink to &quot;802.11i&quot;">​</a></h2><h3 id="_802-11i的安全增强" tabindex="-1">802.11i的安全增强 <a class="header-anchor" href="#_802-11i的安全增强" aria-label="Permalink to &quot;802.11i的安全增强&quot;">​</a></h3><ol><li><p>基于EAP的802.1X的用户认证，实现双向鉴别</p></li><li><p>初始向量增加为48位、加密采用临时密钥完整性协议（TKIP）、CCMP</p><ul><li>TKIP是尽量和WEP兼容，但又比WEP有着更安全的加密和完整性检测机制的一种加密认证机制。</li><li>CCMP和WEP没有相关性，采用较复杂的加密和完整性检测算法。</li></ul></li><li><p>利用报文摘要作为完整性校验值并加密</p></li><li><p>基于用户动态配置密钥，不同用户使用不同的密钥，同一用户每一次接入无线局域网使用不同的密钥。终端与AP之间的使用临时密钥（TK）</p></li></ol><h4 id="tkip" tabindex="-1">TKIP <a class="header-anchor" href="#tkip" aria-label="Permalink to &quot;TKIP&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112121127925.png" alt="image-20250112121127925"></p><ul><li>TSC：序号计数器，代替WEP的24位初始向量。每发送一MAC帧，TSC加1，防重放。</li><li>TA：发生端地址，参与加密每一帧的一次性密钥产生过程，使每一个发生端有单独的48位序号空间，即每个终端有2^48^个一次性密钥，保证不重复使用一次性密钥。</li><li>TK：临时密钥，只在安全关联存在期间有效,发送端和接收端成功交换加密数据的前提是拥有相同的临时密钥TK</li><li>MIC：消息完整性编码，同MAC（消息鉴别码），检测数据序列传输过程中的完整性。</li><li>SA：源MAC地址</li><li>优先级：1B</li></ul><h4 id="ccmp" tabindex="-1">CCMP <a class="header-anchor" href="#ccmp" aria-label="Permalink to &quot;CCMP&quot;">​</a></h4><blockquote><p>基于AES的CCM 模式</p></blockquote><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112122358557.png" alt="image-20250112122358557"></p><ul><li>随机数由报文序号、发送端地址和优先级组成，使得不同发送端、不同MAC帧的随机数均不相同</li><li>附加认证数据由MAC首部中传输过程中不变的字段组成，需要对这些字段的完整性进行检测</li></ul><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112122410246.png" alt="image-20250112122410246"></p><h1 id="互联网安全技术" tabindex="-1">互联网安全技术 <a class="header-anchor" href="#互联网安全技术" aria-label="Permalink to &quot;互联网安全技术&quot;">​</a></h1><h2 id="路由项过滤" tabindex="-1">路由项过滤 <a class="header-anchor" href="#路由项过滤" aria-label="Permalink to &quot;路由项过滤&quot;">​</a></h2><p>R1连接R2的接口配置<img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112125811024.png" alt="image-20250112125811024"></p><h2 id="单播反向路径验证" tabindex="-1">单播反向路径验证 <a class="header-anchor" href="#单播反向路径验证" aria-label="Permalink to &quot;单播反向路径验证&quot;">​</a></h2><p>防源IP地址欺骗攻击</p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112130611016.png" alt="image-20250112130611016"></p><h2 id="策略路由" tabindex="-1">策略路由 <a class="header-anchor" href="#策略路由" aria-label="Permalink to &quot;策略路由&quot;">​</a></h2><ol><li><p>策略路由允许为符合特定条件的IP分组选择特殊的传输路径</p></li><li><p>策略路由项分为两部分：</p><ul><li><p>IP分组分类条件：</p><ul><li>IP首部和TCP首部字段值</li></ul></li><li><p>下一跳地址</p></li></ul></li></ol><h2 id="流量管制" tabindex="-1">流量管制 <a class="header-anchor" href="#流量管制" aria-label="Permalink to &quot;流量管制&quot;">​</a></h2><h3 id="管制算法" tabindex="-1">管制算法 <a class="header-anchor" href="#管制算法" aria-label="Permalink to &quot;管制算法&quot;">​</a></h3><ol><li>漏斗算法</li><li>令牌桶算法 <ul><li><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112131512735.png" alt="image-20250112131512735"></li></ul></li></ol><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112132044708.png" alt="image-20250112132044708"></p><h2 id="nat" tabindex="-1">NAT <a class="header-anchor" href="#nat" aria-label="Permalink to &quot;NAT&quot;">​</a></h2><h3 id="类型" tabindex="-1">类型 <a class="header-anchor" href="#类型" aria-label="Permalink to &quot;类型&quot;">​</a></h3><ol><li>静态NAT</li><li>动态NAT</li><li>PAT</li></ol><h2 id="vrrp" tabindex="-1">VRRP <a class="header-anchor" href="#vrrp" aria-label="Permalink to &quot;VRRP&quot;">​</a></h2><h1 id="vpn" tabindex="-1">VPN <a class="header-anchor" href="#vpn" aria-label="Permalink to &quot;VPN&quot;">​</a></h1><h2 id="第三层隧道和ipsec" tabindex="-1">第三层隧道和IPSec <a class="header-anchor" href="#第三层隧道和ipsec" aria-label="Permalink to &quot;第三层隧道和IPSec&quot;">​</a></h2><p>隧道用于实现企业局域网之间以私有IP地址为源和目的IP地址的IP分组的传输过程。</p><h3 id="内部网络之间ip分组传输过程" tabindex="-1">内部网络之间IP分组传输过程 <a class="header-anchor" href="#内部网络之间ip分组传输过程" aria-label="Permalink to &quot;内部网络之间IP分组传输过程&quot;">​</a></h3><ol><li>将IP分组封装成GRE（通用路由封装）格式</li><li>将GRE格式作为净荷封装成以边界路由器R1连接Internet的接口的全球IP地址为源、以边界路由器R2连接Internet的接口的全球IP地址为目的IP地址的IP分组</li><li>由于该IP分组的净荷是另一个IP分组的GRE格式，将这种IP分组称为隧道报文。</li></ol><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112144655275.png" alt="image-20250112144655275"></p><h2 id="ipsec-和安全传输过程" tabindex="-1">IPSec 和安全传输过程 <a class="header-anchor" href="#ipsec-和安全传输过程" aria-label="Permalink to &quot;IPSec 和安全传输过程&quot;">​</a></h2><ol><li>建立安全传输通道</li><li>建立安全关联</li></ol><p>安全关联传输隧道报文过程：<img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112145448009.png"></p><p>协议类型50表示该IP分组净荷是ESP报文</p><h2 id="第二层隧道和ipsec" tabindex="-1">第二层隧道和IPSec <a class="header-anchor" href="#第二层隧道和ipsec" aria-label="Permalink to &quot;第二层隧道和IPSec&quot;">​</a></h2><p>隧道用于实现PPP帧传输过程</p><h3 id="l2tp" tabindex="-1">L2TP <a class="header-anchor" href="#l2tp" aria-label="Permalink to &quot;L2TP&quot;">​</a></h3><p>终端发起建立第二层隧道方式</p><p>前提是远程终端已经连接到Internet上，且已经分配全球IP地址</p><h2 id="ssl-vpn" tabindex="-1">SSL VPN <a class="header-anchor" href="#ssl-vpn" aria-label="Permalink to &quot;SSL VPN&quot;">​</a></h2><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112141234519.png" alt="image-20250112141234519"></p><h1 id="防火墙" tabindex="-1">防火墙 <a class="header-anchor" href="#防火墙" aria-label="Permalink to &quot;防火墙&quot;">​</a></h1><h2 id="分组过滤器" tabindex="-1">分组过滤器 <a class="header-anchor" href="#分组过滤器" aria-label="Permalink to &quot;分组过滤器&quot;">​</a></h2><blockquote><p>从一个网络进入另一个网络的全部IP分组中筛选出符合用户指定特征的一部分IP分组，并对这一部分IP分组的网络间传输过程实施控制。</p></blockquote><h3 id="无状态分组过滤器" tabindex="-1">无状态分组过滤器 <a class="header-anchor" href="#无状态分组过滤器" aria-label="Permalink to &quot;无状态分组过滤器&quot;">​</a></h3><p>实施筛选和控制操作时，每一个IP分组都是独立的，不考虑IP分组之间的关联性</p><h4 id="写过滤规则" tabindex="-1">写过滤规则 <a class="header-anchor" href="#写过滤规则" aria-label="Permalink to &quot;写过滤规则&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112151531177.png" alt="image-20250112151531177"></p><p>R1接口输入方向上：</p><ul><li>协议类型=TCP，源IP地址=193.1.1.0/24，目的IP地址=193.1.2.5，目的端口号=23；丢弃</li><li>协议类型=*，源IP地址=any,目的IP地址=any;正常转发</li></ul><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112152219959.png" alt="image-20250112152219959"></p><p>R1接口1输入方向：</p><ul><li>协议类型=TCP，源IP地址=192.1.1.1/32，源端口号=*，目的IP地址=192.1.2.7/32，目的端口号=80；正常转发</li><li>协议类型=TCP，源IP地址=192.1.1.7/32，源端口号=21，目的IP地址=192.1.2.1/32，目的端口号=*；正常转发</li><li>协议类型=TCP，源IP地址=192.1.1.7/32，源端口号=20，目的IP地址=192.1.2.1/32，目的端口号=*；正常转发</li><li>协议类型=*，源IP地址=any,目的IP地址=any；丢弃</li></ul><p>R2接口2输入方向：</p><ul><li>协议类型=TCP，源IP地址=192.1.2.1/32，源端口号=*，目的IP地址=192.1.1.7/32，目的端口号=21；正常转发</li><li>协议类型=TCP，源IP地址=192.1.2.1/32，源端口号=*，目的IP地址=192.1.1.7/32，目的端口号=20；正常转发</li><li>协议类型=TCP，源IP地址=192.1.2.7/32，源端口号=80，目的IP地址=192.1.1.1/32,目的端口号=*；正常转发</li><li>协议类型=*，源IP地址=any,目的IP地址=any；丢弃</li></ul><h3 id="有状态分组过滤器" tabindex="-1">有状态分组过滤器 <a class="header-anchor" href="#有状态分组过滤器" aria-label="Permalink to &quot;有状态分组过滤器&quot;">​</a></h3><blockquote><p>匹配路由器R1接口1输出方向过滤规则的IP分组未必就是封装Web服务器用于响应终端A访问请求的响应报文的IP分组。原因是，响应报文不是固定的，而是根据请求报文动态变化的。</p><p>为了实现路由器R1接口1只允许输入输出与终端A发起访问web服务器的操作有关的IP分组，禁止输入输出其他一切类型的IP分组的安全策略</p></blockquote><h4 id="写访问控制策略" tabindex="-1">写访问控制策略 <a class="header-anchor" href="#写访问控制策略" aria-label="Permalink to &quot;写访问控制策略&quot;">​</a></h4><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112160551416.png" alt="image-20250112160551416"></p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112160819666.png" alt="image-20250112160819666"></p><p>访问策略和分组过滤不同，不是定义了允许或不允许传输的IP分组，而是定义了整个服务过程。如第一项策略表示允许进行由信任区中终端发起的，对非军事区中的WEB服务器的访问。它允许符合这个访问过程的IP分组在信任区和非军事区之间传输。</p><h3 id="电路层代理" tabindex="-1">电路层代理 <a class="header-anchor" href="#电路层代理" aria-label="Permalink to &quot;电路层代理&quot;">​</a></h3><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112183655038.png" alt="image-20250112183655038"></p><p>假定源主机是终端B，目的主机是Web服务器，源主机与目的主机之间无法直接建立TCP连接。</p><p><img src="https://typora5672.oss-cn-chengdu.aliyuncs.com/temp/image-20250112183927442.png" alt="image-20250112183927442"></p><h1 id="ids" tabindex="-1">IDS <a class="header-anchor" href="#ids" aria-label="Permalink to &quot;IDS&quot;">​</a></h1><p>入侵检测机制：</p><ol><li>协议译码</li><li>攻击特征匹配</li><li>异常检测</li></ol></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/%E5%85%B6%E4%BB%96/%E5%85%AB%E8%82%A1/%E5%85%B6%E4%BB%96/%E6%B1%87%E7%BC%96/%E9%80%BB%E8%BE%91%E8%BF%90%E7%AE%97%E4%B8%8E%E7%A7%BB%E4%BD%8D%E6%8C%87%E4%BB%A4.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>上一篇</span><span class="title" data-v-e257564d>逻辑运算与移位指令</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/%E5%85%B6%E4%BB%96/%E9%A1%B9%E7%9B%AE/%E9%A1%B9%E7%9B%AE%E9%83%A8%E7%BD%B2/web.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>下一篇</span><span class="title" data-v-e257564d>web</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024.8.15-present 九问.All Rights Reserved.</p></div></footer><!--[--><!--]--></div><!----><!----><!--]--></div>
    <script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"DPLzomJ3\",\"linux_linux基础入门.md\":\"pHBVwgKW\",\"linux_常用命令备忘.md\":\"BjZbNsQB\",\"linux_虚拟机相关.md\":\"509DUbJA\",\"llm_langchain_lcel表达式与runnable可运行协议.md\":\"Do8svL8L\",\"llm_langchain_model.md\":\"BseancJn\",\"llm_langchain_outputparser.md\":\"Dy6NsY5B\",\"llm_langchain_prompt.md\":\"XqZSAhnf\",\"llm_langchain_quick_start.md\":\"BNcILzfr\",\"python_原理类_依赖注入.md\":\"CL2SMX95\",\"python_原理类_内存管理.md\":\"CPaxdydH\",\"python_原理类_单例模式.md\":\"sMUaVqEG\",\"python_原理类_多进程多线程协程.md\":\"DqpQdOiz\",\"python_原理类_深浅拷贝.md\":\"CLyf8bhf\",\"python_原理类_自省.md\":\"xlfwK7Qt\",\"python_原理类_迭代器和生成器.md\":\"CkWqBBDs\",\"python_原理类_闭包和装饰器.md\":\"DK3E-cjV\",\"python_原理类_高阶函数.md\":\"DCh-efV4\",\"python_原理类_魔法方法.md\":\"DmwyLFne\",\"python_原理类_鸭子类型.md\":\"5JGfCqIC\",\"python_基础_练习题.md\":\"CsgELmqe\",\"python_工具类_logging.md\":\"dWLhofea\",\"python框架_django_4-1环境搭建.md\":\"B6koVIdo\",\"python框架_django_4-2settings配置.md\":\"B6f707F-\",\"python框架_django_4-3路由定义与使用.md\":\"BD3-Rmv3\",\"python框架_django_4-4请求与响应.md\":\"n_ivviS2\",\"python框架_django_4-5session_cookie.md\":\"DAeZMmLC\",\"python框架_django_4-6类视图.md\":\"CC_0FUMu\",\"python框架_django_4-7模板引擎.md\":\"BdpQJw0a\",\"python框架_django_接口文档.md\":\"cRd_13f9\",\"python框架_django_熟悉流程_部署博客.md\":\"B4LDDwJF\",\"python框架_django_虚拟环境.md\":\"CANoJLNU\",\"python框架_flask_flask-sqlalchemy.md\":\"CUU_aFQd\",\"python框架_flask_flask-wtf_wtfforms.md\":\"LvJO-ZqI\",\"python框架_flask_start.md\":\"CEtxJVgY\",\"其他_八股_linux.md\":\"CJveVc64\",\"其他_八股_其他_汇编_串指令.md\":\"BttYJMTr\",\"其他_八股_其他_汇编_前置知识.md\":\"BucxfzEY\",\"其他_八股_其他_汇编_宏汇编.md\":\"2UfLWMAK\",\"其他_八股_其他_汇编_寄存器.md\":\"jp1xBRVS\",\"其他_八股_其他_汇编_寻址方式.md\":\"CewV_a8e\",\"其他_八股_其他_汇编_数据传送指令.md\":\"PY1RmkQj\",\"其他_八股_其他_汇编_程序设计综合.md\":\"CqsM9zoN\",\"其他_八股_其他_汇编_逻辑运算与移位指令.md\":\"B_-kKKiB\",\"其他_八股_其他_网安_网络安全.md\":\"COiOJXPx\",\"其他_八股_前端_css_单位.md\":\"DyaFOJT4\",\"其他_八股_前端_css_居中的方式.md\":\"rsk20pg5\",\"其他_八股_前端_html_文档声明.md\":\"CQQLsheK\",\"其他_八股_前端_html_替换元素.md\":\"D69yt3g4\",\"其他_八股_前端_html_语义化_seo_微格式.md\":\"DcyemF8i\",\"其他_八股_前端_html_页面可见性.md\":\"CFWJeBWr\",\"其他_八股_前端_事件循环_异步.md\":\"pX3ui26Y\",\"其他_八股_操作系统_存储管理.md\":\"BiNbZ62S\",\"其他_八股_操作系统_操作系统安全及虚拟化技术概述.md\":\"JHACDhW4\",\"其他_八股_操作系统_操作系统概述及基本概念.md\":\"D9Lo515v\",\"其他_八股_操作系统_文件系统.md\":\"Dtjdw_je\",\"其他_八股_操作系统_死锁.md\":\"zHFIU7qo\",\"其他_八股_操作系统_输入输出.md\":\"frvtHq-m\",\"其他_八股_操作系统_进程与线程.md\":\"DbHOm3Wq\",\"其他_八股_操作系统_面试八股.md\":\"CzgRxFHm\",\"其他_八股_数据库_log.md\":\"B-ybS9bR\",\"其他_八股_数据库_mysql的执行引擎.md\":\"CUp82kj5\",\"其他_八股_数据库_redis.md\":\"z8vp5n46\",\"其他_八股_数据库_sql语句的执行.md\":\"B0aqkw_M\",\"其他_八股_数据库_事务_事务的四大特性.md\":\"DWegFK6Q\",\"其他_八股_数据库_事务_事务的隔离级别.md\":\"CJpAB-SH\",\"其他_八股_数据库_慢查询.md\":\"C1IK6Wix\",\"其他_八股_数据库_索引失效的场景.md\":\"Ax0k9vQn\",\"其他_八股_数据库_进阶_窗口函数.md\":\"C_zDFJPI\",\"其他_八股_数据结构_二分法.md\":\"cV9m7f2a\",\"其他_八股_数据结构_二叉树.md\":\"DkYu-9Db\",\"其他_八股_数据结构_回溯.md\":\"CcyoEaKv\",\"其他_八股_数据结构_数组_蛇形填数.md\":\"sJgKru0T\",\"其他_八股_数据结构_滑动窗口最大值.md\":\"7EhHWPLR\",\"其他_八股_数据结构_背包_01背包.md\":\"Bm-yOyBt\",\"其他_八股_数据结构_链表_两两交换链表中的节点.md\":\"B8MvoYxB\",\"其他_八股_数据结构_链表_单链表.md\":\"BrcntfvU\",\"其他_八股_数据结构_链表_反转链表.md\":\"imXNe7Cp\",\"其他_八股_测开_bug.md\":\"DEH0Pngz\",\"其他_八股_测开_性能测试.md\":\"BIq1PtDn\",\"其他_八股_测开_测试的流程.md\":\"BDpHuwv1\",\"其他_八股_测开_测试的理解.md\":\"D0oj3MOT\",\"其他_八股_测开_软件测试.md\":\"DBQvBkbe\",\"其他_八股_测开_软件质量.md\":\"BbbVdNmM\",\"其他_八股_计网_cdn.md\":\"BBkFV3YX\",\"其他_八股_计网_cookie_session.md\":\"9lTHujdv\",\"其他_八股_计网_dns查询过程.md\":\"UEG8MFOS\",\"其他_八股_计网_http常见状态码.md\":\"FjHGrHsS\",\"其他_八股_计网_osi模型.md\":\"CQQrgYYo\",\"其他_八股_计网_url到页面展示.md\":\"CysFBpDy\",\"其他_八股_计网_传输层_tcp_udp.md\":\"CGN96CrC\",\"其他_八股_计网_应用层_http.md\":\"BwfPa-_I\",\"其他_八股_计网_应用层_http1.0各个版本.md\":\"Po_QFcD7\",\"其他_八股_计网_应用层_http_https.md\":\"CVNCJSvP\",\"其他_八股_计网_强缓存和协商缓存.md\":\"BCS9u_As\",\"其他_八股_计网_物理层_奈氏准则_香农公式.md\":\"LJ2m6SOu\",\"其他_面经_大疆.md\":\"7GCAKeVb\",\"其他_面经_差旅1号.md\":\"COJ0oCTe\",\"其他_面经_广州嘉为科技公司-python.md\":\"DKqZln1v\",\"其他_面经_得物.md\":\"Dh7JuSj9\",\"其他_面经_招商银行.md\":\"xRFKUhWx\",\"其他_面经_百度.md\":\"BNUT_qAS\",\"其他_项目_项目部署_vitepress_githubpages部署.md\":\"BVpDdxkG\",\"其他_项目_项目部署_vitepress_netlify部署.md\":\"Coqp4VTV\",\"其他_项目_项目部署_vitepress_nginx部署.md\":\"BAeOv9Kq\",\"其他_项目_项目部署_web.md\":\"BoGi1t8O\",\"前端_vue3_axios.md\":\"D33GJUpk\",\"前端_vue3_面试.md\":\"Ba2Ot3Rt\",\"前端_前端三件套_css_css3自定义属性.md\":\"D8gxja-i\",\"前端_前端三件套_css_css基础入门.md\":\"ndtMtB1o\",\"前端_前端三件套_css_flexbox布局.md\":\"THfIflcE\",\"前端_前端三件套_css_grid布局.md\":\"DxVJntk3\",\"前端_前端三件套_css_动画.md\":\"CFLVIA4-\",\"前端_前端三件套_css_媒体查询.md\":\"DOMiDDiY\",\"前端_前端三件套_css_属性.md\":\"CESPzocp\",\"前端_前端三件套_html_html基础.md\":\"DVzBORCM\",\"前端_前端三件套_js_dom操作.md\":\"DMHjLETt\",\"前端_前端三件套_js_js入门.md\":\"B5ZmIMru\",\"前端_前端三件套_js_属性描述符.md\":\"CbnoBHiZ\",\"前端_前端三件套_js_高阶函数.md\":\"xnE4baNa\",\"前端_前端三件套_实战案例_聊天页面.md\":\"Biaa-glg\",\"前端_前端三件套_面试_基本题.md\":\"CHZnvxX-\",\"工具_git_gitignore.md\":\"DoXDP0e-\",\"工具_git_git的基本使用.md\":\"DU6wlewG\",\"工具_git_同时推送gitee和github.md\":\"Cvg2MFU1\",\"测试_faker数据随机生成.md\":\"BasZvW7O\",\"测试_jenkins.md\":\"CFQxIQZz\",\"测试_pytest_pytest基础.md\":\"6gYMEMqz\",\"测试_pytest_yaml文件.md\":\"kC0gde-v\",\"测试_pytest_日志.md\":\"CXf5niRD\",\"测试_unittest.md\":\"DLCFrt8V\",\"测试_性能测试_基础概念.md\":\"DOav1Wqa\",\"爬虫_bs4解析.md\":\"DuOzYyCe\",\"爬虫_jsonpath解析.md\":\"Drhtc37w\",\"爬虫_scrapy.md\":\"D83vZHmx\",\"爬虫_selenium.md\":\"BhDk9UyV\",\"爬虫_xpath解析.md\":\"MjtoQ3qX\",\"爬虫_导论.md\":\"BiquNqIP\",\"爬虫_抓包.md\":\"BDJtadra\",\"爬虫_登录流程.md\":\"MPghsp8c\",\"环境搭建_docker_mysql.md\":\"Duy1yYHv\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"九问Blog\",\"description\":\"欢迎访问九问Blog！分享一些Python全栈开发以及爬虫技术，希望对你有所帮助\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/jiuwen567\"},{\"icon\":{\"svg\":\"<svg t=\\\"1724307958358\\\" class=\\\"icon\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" p-id=\\\"4234\\\" width=\\\"200\\\" height=\\\"200\\\"><path d=\\\"M512 0C230.4 0 0 230.4 0 512s230.4 512 512 512 512-230.4 512-512S793.6 0 512 0z m284.8 313.6c0 12.8-12.8 25.6-25.6 25.6H416c-41.6 0-76.8 35.2-76.8 76.8v243.2c0 12.8 12.8 25.6 25.6 25.6h240c41.6 0 76.8-35.2 76.8-76.8v-12.8c0-12.8-12.8-25.6-25.6-25.6H480c-12.8 0-25.6-12.8-25.6-25.6v-64c0-12.8 12.8-25.6 25.6-25.6h291.2c12.8 0 25.6 12.8 25.6 25.6v144c0 92.8-76.8 169.6-169.6 169.6H252.8c-12.8 0-25.6-12.8-25.6-25.6V412.8C227.2 310.4 310.4 224 416 224h355.2c12.8 0 25.6 12.8 25.6 25.6v64z\\\" fill=\\\"#B32225\\\" p-id=\\\"4235\\\"></path></svg>\"},\"link\":\"https://gitee.com/jiuwen567\"}],\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024.8.15-present 九问.All Rights Reserved.\"},\"search\":{\"provider\":\"local\"},\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"returnToTopLabel\":\"回到顶部\",\"sidebarMenuLabel\":\"菜单\",\"darkModeSwitchLabel\":\"主题\",\"lightModeSwitchTitle\":\"切换到浅色模式\",\"darkModeSwitchTitle\":\"切换到深色模式\",\"nav\":[{\"text\":\"工具\",\"activeMatch\":\"/工具/\",\"link\":\"/工具/Git/同时推送Gitee和GitHub\"},{\"text\":\"Linux\",\"activeMatch\":\"/Linux/\",\"link\":\"/Linux/Linux基础入门\"},{\"text\":\"爬虫\",\"activeMatch\":\"/爬虫/\",\"link\":\"/爬虫/导论\"},{\"text\":\"测试\",\"activeMatch\":\"/测试/\",\"link\":\"/测试/faker数据随机生成\"},{\"text\":\"Python\",\"activeMatch\":\"/Python/\",\"link\":\"/Python/原理类/内存管理\"},{\"text\":\"Python框架\",\"activeMatch\":\"/Python框架/\",\"link\":\"/Python框架/Django/接口文档\"},{\"text\":\"其他\",\"activeMatch\":\"/其他/\",\"link\":\"/其他/八股/Linux\"},{\"text\":\"前端\",\"activeMatch\":\"/前端/\",\"link\":\"/前端/Vue3/axios\"},{\"text\":\"LLM\",\"activeMatch\":\"/LLM/\",\"link\":\"/LLM/LangChain/quick_start\"},{\"text\":\"环境搭建\",\"activeMatch\":\"/环境搭建/\",\"link\":\"/环境搭建/docker/mysql\"}],\"sidebar\":{\"/工具/\":[{\"text\":\"Git\",\"collapsed\":false,\"items\":[{\"text\":\"同时推送Gitee和GitHub\",\"link\":\"/工具/Git/同时推送Gitee和GitHub\"},{\"text\":\"Git的基本使用\",\"link\":\"/工具/Git/Git的基本使用\"},{\"text\":\"gitignore\",\"link\":\"/工具/Git/gitignore\"}]}],\"/Linux/\":[{\"text\":\"Linux基础入门\",\"link\":\"/Linux/Linux基础入门\"},{\"text\":\"虚拟机相关\",\"link\":\"/Linux/虚拟机相关\"},{\"text\":\"常用命令备忘\",\"link\":\"/Linux/常用命令备忘\"}],\"/爬虫/\":[{\"text\":\"导论\",\"link\":\"/爬虫/导论\"},{\"text\":\"抓包\",\"link\":\"/爬虫/抓包\"},{\"text\":\"bs4解析\",\"link\":\"/爬虫/bs4解析\"},{\"text\":\"xpath解析\",\"link\":\"/爬虫/xpath解析\"},{\"text\":\"登录流程\",\"link\":\"/爬虫/登录流程\"},{\"text\":\"scrapy\",\"link\":\"/爬虫/scrapy\"},{\"text\":\"selenium\",\"link\":\"/爬虫/selenium\"},{\"text\":\"jsonpath解析\",\"link\":\"/爬虫/jsonpath解析\"}],\"/测试/\":[{\"text\":\"faker数据随机生成\",\"link\":\"/测试/faker数据随机生成\"},{\"text\":\"Jenkins\",\"link\":\"/测试/Jenkins\"},{\"text\":\"unittest\",\"link\":\"/测试/unittest\"},{\"text\":\"性能测试\",\"collapsed\":false,\"items\":[{\"text\":\"基础概念\",\"link\":\"/测试/性能测试/基础概念\"}]},{\"text\":\"pytest\",\"collapsed\":false,\"items\":[{\"text\":\"pytest基础\",\"link\":\"/测试/pytest/pytest基础\"},{\"text\":\"yaml文件\",\"link\":\"/测试/pytest/yaml文件\"},{\"text\":\"日志\",\"link\":\"/测试/pytest/日志\"}]}],\"/Python/\":[{\"text\":\"原理类\",\"collapsed\":false,\"items\":[{\"text\":\"内存管理\",\"link\":\"/Python/原理类/内存管理\"},{\"text\":\"单例模式\",\"link\":\"/Python/原理类/单例模式\"},{\"text\":\"多进程多线程协程\",\"link\":\"/Python/原理类/多进程多线程协程\"},{\"text\":\"深浅拷贝\",\"link\":\"/Python/原理类/深浅拷贝\"},{\"text\":\"自省\",\"link\":\"/Python/原理类/自省\"},{\"text\":\"迭代器和生成器\",\"link\":\"/Python/原理类/迭代器和生成器\"},{\"text\":\"闭包和装饰器\",\"link\":\"/Python/原理类/闭包和装饰器\"},{\"text\":\"高阶函数\",\"link\":\"/Python/原理类/高阶函数\"},{\"text\":\"魔法方法\",\"link\":\"/Python/原理类/魔法方法\"},{\"text\":\"鸭子类型\",\"link\":\"/Python/原理类/鸭子类型\"},{\"text\":\"依赖注入\",\"link\":\"/Python/原理类/依赖注入\"}]},{\"text\":\"工具类\",\"collapsed\":false,\"items\":[{\"text\":\"logging\",\"link\":\"/Python/工具类/logging\"}]},{\"text\":\"基础\",\"collapsed\":false,\"items\":[{\"text\":\"练习题\",\"link\":\"/Python/基础/练习题\"}]}],\"/前端/\":[{\"text\":\"Vue3\",\"collapsed\":false,\"items\":[{\"text\":\"axios\",\"link\":\"/前端/Vue3/axios\"},{\"text\":\"面试\",\"link\":\"/前端/Vue3/面试\"}]},{\"text\":\"前端三件套\",\"collapsed\":false,\"items\":[{\"text\":\"HTML\",\"collapsed\":false,\"items\":[{\"text\":\"HTML基础\",\"link\":\"/前端/前端三件套/HTML/HTML基础\"}]},{\"text\":\"CSS\",\"collapsed\":false,\"items\":[{\"text\":\"css3自定义属性\",\"link\":\"/前端/前端三件套/CSS/css3自定义属性\"},{\"text\":\"css基础入门\",\"link\":\"/前端/前端三件套/CSS/css基础入门\"},{\"text\":\"flexbox布局\",\"link\":\"/前端/前端三件套/CSS/flexbox布局\"},{\"text\":\"grid布局\",\"link\":\"/前端/前端三件套/CSS/grid布局\"},{\"text\":\"动画\",\"link\":\"/前端/前端三件套/CSS/动画\"},{\"text\":\"媒体查询\",\"link\":\"/前端/前端三件套/CSS/媒体查询\"},{\"text\":\"属性\",\"link\":\"/前端/前端三件套/CSS/属性\"}]},{\"text\":\"js\",\"collapsed\":false,\"items\":[{\"text\":\"DOM操作\",\"link\":\"/前端/前端三件套/js/DOM操作\"},{\"text\":\"js入门\",\"link\":\"/前端/前端三件套/js/js入门\"},{\"text\":\"属性描述符\",\"link\":\"/前端/前端三件套/js/属性描述符\"},{\"text\":\"高阶函数\",\"link\":\"/前端/前端三件套/js/高阶函数\"}]},{\"text\":\"面试\",\"collapsed\":false,\"items\":[{\"text\":\"基本题\",\"link\":\"/前端/前端三件套/面试/基本题\"}]},{\"text\":\"实战案例\",\"collapsed\":false,\"items\":[{\"text\":\"聊天页面\",\"link\":\"/前端/前端三件套/实战案例/聊天页面\"}]}]}],\"/Python框架/\":[{\"text\":\"Django\",\"collapsed\":false,\"items\":[{\"text\":\"接口文档\",\"link\":\"/Python框架/Django/接口文档\"},{\"text\":\"熟悉流程\",\"collapsed\":false,\"items\":[{\"text\":\"部署博客\",\"link\":\"/Python框架/Django/熟悉流程/部署博客\"}]},{\"text\":\"4-1环境搭建\",\"link\":\"/Python框架/Django/4-1环境搭建\"},{\"text\":\"4-2settings配置\",\"link\":\"/Python框架/Django/4-2settings配置\"},{\"text\":\"4-3路由定义与使用\",\"link\":\"/Python框架/Django/4-3路由定义与使用\"},{\"text\":\"4-4请求与响应\",\"link\":\"/Python框架/Django/4-4请求与响应\"},{\"text\":\"4-5session_cookie\",\"link\":\"/Python框架/Django/4-5session_cookie\"},{\"text\":\"4-6类视图\",\"link\":\"/Python框架/Django/4-6类视图\"},{\"text\":\"4-7模板引擎\",\"link\":\"/Python框架/Django/4-7模板引擎\"},{\"text\":\"虚拟环境\",\"link\":\"/Python框架/Django/虚拟环境\"}]},{\"text\":\"Flask\",\"collapsed\":false,\"items\":[{\"text\":\"start\",\"link\":\"/Python框架/Flask/start\"},{\"text\":\"Flask-wtf&wtfforms\",\"link\":\"/Python框架/Flask/Flask-wtf&wtfforms\"},{\"text\":\"Flask-SQLAlchemy\",\"link\":\"/Python框架/Flask/Flask-SQLAlchemy\"}]}],\"/其他/\":[{\"text\":\"面经\",\"collapsed\":false,\"items\":[{\"text\":\"大疆\",\"link\":\"/其他/面经/大疆\"},{\"text\":\"差旅1号\",\"link\":\"/其他/面经/差旅1号\"},{\"text\":\"广州嘉为科技公司-python\",\"link\":\"/其他/面经/广州嘉为科技公司-python\"},{\"text\":\"得物\",\"link\":\"/其他/面经/得物\"},{\"text\":\"招商银行\",\"link\":\"/其他/面经/招商银行\"},{\"text\":\"百度\",\"link\":\"/其他/面经/百度\"}]},{\"text\":\"八股\",\"collapsed\":false,\"items\":[{\"text\":\"Linux\",\"link\":\"/其他/八股/Linux\"},{\"text\":\"前端\",\"collapsed\":false,\"items\":[{\"text\":\"事件循环&异步\",\"link\":\"/其他/八股/前端/事件循环&异步\"},{\"text\":\"HTML\",\"collapsed\":false,\"items\":[{\"text\":\"文档声明\",\"link\":\"/其他/八股/前端/HTML/文档声明\"},{\"text\":\"替换元素\",\"link\":\"/其他/八股/前端/HTML/替换元素\"},{\"text\":\"语义化&SEO&微格式\",\"link\":\"/其他/八股/前端/HTML/语义化&SEO&微格式\"},{\"text\":\"页面可见性\",\"link\":\"/其他/八股/前端/HTML/页面可见性\"}]},{\"text\":\"CSS\",\"collapsed\":false,\"items\":[{\"text\":\"单位\",\"link\":\"/其他/八股/前端/CSS/单位\"},{\"text\":\"居中的方式\",\"link\":\"/其他/八股/前端/CSS/居中的方式\"}]}]},{\"text\":\"数据库\",\"collapsed\":false,\"items\":[{\"text\":\"log\",\"link\":\"/其他/八股/数据库/log\"},{\"text\":\"mysql的执行引擎\",\"link\":\"/其他/八股/数据库/mysql的执行引擎\"},{\"text\":\"redis\",\"link\":\"/其他/八股/数据库/redis\"},{\"text\":\"sql语句的执行\",\"link\":\"/其他/八股/数据库/sql语句的执行\"},{\"text\":\"慢查询\",\"link\":\"/其他/八股/数据库/慢查询\"},{\"text\":\"索引失效的场景\",\"link\":\"/其他/八股/数据库/索引失效的场景\"},{\"text\":\"事务\",\"collapsed\":false,\"items\":[{\"text\":\"事务的四大特性\",\"link\":\"/其他/八股/数据库/事务/事务的四大特性\"},{\"text\":\"事务的隔离级别\",\"link\":\"/其他/八股/数据库/事务/事务的隔离级别\"}]},{\"text\":\"进阶\",\"collapsed\":false,\"items\":[{\"text\":\"窗口函数\",\"link\":\"/其他/八股/数据库/进阶/窗口函数\"}]}]},{\"text\":\"测开\",\"collapsed\":false,\"items\":[{\"text\":\"bug\",\"link\":\"/其他/八股/测开/bug\"},{\"text\":\"性能测试\",\"link\":\"/其他/八股/测开/性能测试\"},{\"text\":\"测试的流程\",\"link\":\"/其他/八股/测开/测试的流程\"},{\"text\":\"测试的理解\",\"link\":\"/其他/八股/测开/测试的理解\"},{\"text\":\"软件测试\",\"link\":\"/其他/八股/测开/软件测试\"},{\"text\":\"软件质量\",\"link\":\"/其他/八股/测开/软件质量\"}]},{\"text\":\"数据结构\",\"collapsed\":false,\"items\":[{\"text\":\"二分法\",\"link\":\"/其他/八股/数据结构/二分法\"},{\"text\":\"二叉树\",\"link\":\"/其他/八股/数据结构/二叉树\"},{\"text\":\"回溯\",\"link\":\"/其他/八股/数据结构/回溯\"},{\"text\":\"滑动窗口最大值\",\"link\":\"/其他/八股/数据结构/滑动窗口最大值\"},{\"text\":\"数组\",\"collapsed\":false,\"items\":[{\"text\":\"蛇形填数\",\"link\":\"/其他/八股/数据结构/数组/蛇形填数\"}]},{\"text\":\"背包\",\"collapsed\":false,\"items\":[{\"text\":\"01背包\",\"link\":\"/其他/八股/数据结构/背包/01背包\"}]},{\"text\":\"链表\",\"collapsed\":false,\"items\":[{\"text\":\"两两交换链表中的节点\",\"link\":\"/其他/八股/数据结构/链表/两两交换链表中的节点\"},{\"text\":\"单链表\",\"link\":\"/其他/八股/数据结构/链表/单链表\"},{\"text\":\"反转链表\",\"link\":\"/其他/八股/数据结构/链表/反转链表\"}]}]},{\"text\":\"计网\",\"collapsed\":false,\"items\":[{\"text\":\"CDN\",\"link\":\"/其他/八股/计网/CDN\"},{\"text\":\"cookie&session\",\"link\":\"/其他/八股/计网/cookie&session\"},{\"text\":\"DNS查询过程\",\"link\":\"/其他/八股/计网/DNS查询过程\"},{\"text\":\"http常见状态码\",\"link\":\"/其他/八股/计网/http常见状态码\"},{\"text\":\"OSI模型\",\"link\":\"/其他/八股/计网/OSI模型\"},{\"text\":\"url到页面展示\",\"link\":\"/其他/八股/计网/url到页面展示\"},{\"text\":\"强缓存和协商缓存\",\"link\":\"/其他/八股/计网/强缓存和协商缓存\"},{\"text\":\"传输层\",\"collapsed\":false,\"items\":[{\"text\":\"TCP&UDP\",\"link\":\"/其他/八股/计网/传输层/TCP&UDP\"}]},{\"text\":\"物理层\",\"collapsed\":false,\"items\":[{\"text\":\"奈氏准则&香农公式\",\"link\":\"/其他/八股/计网/物理层/奈氏准则&香农公式\"}]},{\"text\":\"应用层\",\"collapsed\":false,\"items\":[{\"text\":\"http&https\",\"link\":\"/其他/八股/计网/应用层/http&https\"},{\"text\":\"http\",\"link\":\"/其他/八股/计网/应用层/http\"},{\"text\":\"http1.0各个版本\",\"link\":\"/其他/八股/计网/应用层/http1.0各个版本\"}]}]},{\"text\":\"操作系统\",\"collapsed\":false,\"items\":[{\"text\":\"存储管理\",\"link\":\"/其他/八股/操作系统/存储管理\"},{\"text\":\"操作系统安全及虚拟化技术概述\",\"link\":\"/其他/八股/操作系统/操作系统安全及虚拟化技术概述\"},{\"text\":\"操作系统概述及基本概念\",\"link\":\"/其他/八股/操作系统/操作系统概述及基本概念\"},{\"text\":\"文件系统\",\"link\":\"/其他/八股/操作系统/文件系统\"},{\"text\":\"死锁\",\"link\":\"/其他/八股/操作系统/死锁\"},{\"text\":\"输入输出\",\"link\":\"/其他/八股/操作系统/输入输出\"},{\"text\":\"进程与线程\",\"link\":\"/其他/八股/操作系统/进程与线程\"},{\"text\":\"面试八股\",\"link\":\"/其他/八股/操作系统/面试八股\"}]},{\"text\":\"其他\",\"collapsed\":false,\"items\":[{\"text\":\"汇编\",\"collapsed\":false,\"items\":[{\"text\":\"串指令\",\"link\":\"/其他/八股/其他/汇编/串指令\"},{\"text\":\"前置知识\",\"link\":\"/其他/八股/其他/汇编/前置知识\"},{\"text\":\"宏汇编\",\"link\":\"/其他/八股/其他/汇编/宏汇编\"},{\"text\":\"寄存器\",\"link\":\"/其他/八股/其他/汇编/寄存器\"},{\"text\":\"寻址方式\",\"link\":\"/其他/八股/其他/汇编/寻址方式\"},{\"text\":\"数据传送指令\",\"link\":\"/其他/八股/其他/汇编/数据传送指令\"},{\"text\":\"程序设计综合\",\"link\":\"/其他/八股/其他/汇编/程序设计综合\"},{\"text\":\"逻辑运算与移位指令\",\"link\":\"/其他/八股/其他/汇编/逻辑运算与移位指令\"}]},{\"text\":\"网安\",\"collapsed\":false,\"items\":[{\"text\":\"网络安全\",\"link\":\"/其他/八股/其他/网安/网络安全\"}]}]}]},{\"text\":\"项目\",\"collapsed\":false,\"items\":[{\"text\":\"项目部署\",\"collapsed\":false,\"items\":[{\"text\":\"web\",\"link\":\"/其他/项目/项目部署/web\"},{\"text\":\"vitepress\",\"collapsed\":false,\"items\":[{\"text\":\"GithubPages部署\",\"link\":\"/其他/项目/项目部署/vitepress/GithubPages部署\"},{\"text\":\"netlify部署\",\"link\":\"/其他/项目/项目部署/vitepress/netlify部署\"},{\"text\":\"Nginx部署\",\"link\":\"/其他/项目/项目部署/vitepress/Nginx部署\"}]}]}]}],\"/LLM/\":[{\"text\":\"LangChain\",\"collapsed\":false,\"items\":[{\"text\":\"quick_start\",\"link\":\"/LLM/LangChain/quick_start\"},{\"text\":\"Prompt\",\"link\":\"/LLM/LangChain/Prompt\"},{\"text\":\"Model\",\"link\":\"/LLM/LangChain/Model\"},{\"text\":\"OutputParser\",\"link\":\"/LLM/LangChain/OutputParser\"},{\"text\":\"LCEL表达式与Runnable可运行协议\",\"link\":\"/LLM/LangChain/LCEL表达式与Runnable可运行协议\"}]}],\"/环境搭建/\":[{\"text\":\"docker\",\"collapsed\":false,\"items\":[{\"text\":\"mysql\",\"link\":\"/环境搭建/docker/mysql\"}]}]}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
    
  </body>
</html>